Are you trying to use a base type to pass your data back and forth?
Meaning I have a class called
[DataContract]
public class Data {}
[DataContract]
public class NetworkMessage
{
[DataMember]
public Data MyData { get; set; }
}
[DataContract]
public class Foo : Data
{
[DataMember]
public int SomeId { get; set; }
}
[DataContract]
public class Bar : Data
{
[DataMember]
public string FirstName { get; set; }
}
If your WCF service is taking a NetoworkMessage then serialization will fail. You can fix this by using the KnownType attribute.
[DataContract]
[KnownType(typeof(Foo))]
[KnownType(typeof(Bar))]
public class Data {}
[DataContract]
public class NetworkMessage
{
[DataMember]
public Data MyData { get; set; }
}
[DataContract]
public class Foo : Data
{
[DataMember]
public int SomeId { get; set; }
}
[DataContract]
public class Bar : Data
{
[DataMember]
public string FirstName { get; set; }
}