I’m not quite familiar with C#'s built-in json but I’m pretty sure that’s how it works:
[DataContract]
class Streams
{
[DataMember]
public _Links _links { get; set; }
[DataMember]
public Stream stream { get; set; }
[DataContract]
public class _Links
{
[DataMember]
public string self { get; set; }
[DataMember]
public string channel { get; set; }
}
[DataContract]
public class Stream
{
...
}
}