我有类BookDTO,它代表将用于在客户端和服务之间交换数据的对象,其中服务是wcf服务具有以下属性
[Serializable]
[DataContract]
[KnownType(typeof(Book))]
public class BookDTO {...}
这种装饰物体的正确(标准)方式是通过电线发送的吗? 我见过
的例子[DataContract(NameSpace="somenamespace.DTO.Book")]
这里有[KnownType(typeof(Book))]
还原剂吗?
我忘了提到我已经介绍了DataMember属性,所以请忽略它。
答案 0 :(得分:3)
实际上当你使用DataContract metatag时,Serializable Metatag什么都不做。这是来自MSDN文章的引用:
使用[Serializable],所有字段都成为数据合同的一部分(除非它们标有[NonSerialized])。使用[DataContract]时,仅包含标有[DataMember]的成员。请注意,如果某个类型同时具有[DataContract]和[Serializable]属性,它将使用[DataContract]映射
http://msdn.microsoft.com/en-us/magazine/cc163569.aspx
KnownType atrribute Marvin在评论你的问题时向你描述。
答案 1 :(得分:2)
以下课程是一个简单的DTO:
[DataContract]
public class DataTransferObjectExample
{
[DataMember]
public string ExampleData { get; set; }
}
其他所有内容都适用于特殊情况,我们只能检查您是否发布了整个代码。