我有DataContract
称为Credentials
,我将其继承到我自己的业务对象MyCredentials
并自定义。我想通过网络发送它,但可以理解的是我收到了错误。
尝试序列化参数
时出错
有没有办法解决这个问题,而无需在业务对象和DataContracts
之间进行转换?我的代码工作看起来像这样
[DataContract]
[KnownType(typeof(Credentials))]
internal class MyCredentials : Credentials
{
public MyCredentials ()
{
}
}
答案 0 :(得分:3)
您需要使用KnownType-Attribute装饰基类Credientials。
[DataContract]
[KnownType(typeof(MyCredentials))]
publice class Credentials
{
public Credentials()
{
}
}
此外,我认为当您使用DataContractAttribute修饰它时,您需要将类设为public而不是internal。
[DataContract]
public class MyCredentials : Credentials {
public MyCredentials () {
}
}
答案 1 :(得分:0)
辅助功能修饰符在合同完成后不会影响DataContract。