我有一个包含2个属性的类,“DataContract”和“Serializable”。该类正在服务中使用。该服务正由项目使用。我通过使用VS的“添加服务引用”功能(右键单击引用 - 添加 - 服务引用)在项目中添加了服务引用。每当我添加服务引用时,都会在服务引用的Reference.cs文件中创建类的重复属性,1具有“DataMember”属性,而其他属性具有“Serializable”属性。这导致构建错误。如果我没有放置Serializable属性,那么服务引用只能使用具有“DataMember”属性的类的一组属性来正常工作。
知道为什么会发生这种情况,我们可以做些什么来避免这种情况?请注意,该类需要这两个属性,即我无法删除任何属性。
答案 0 :(得分:1)
你能解释为什么你需要这两个属性吗?
DataContractSerializer
可以使用Serializable
属性。
但是,要使BinaryFormattor
生效,您需要Serializable
属性。
找到摆脱DataContract
属性的方法。
- 编辑 -
默认情况下, WCF
使用DataContractSerializer
来序列化/反序列化通道上的对象。根据{{1}}文档,
@ DataContractSerializer Class
MSDN
因此,要使WCF正常工作,您可以摆脱// You must apply a DataContractAttribute or SerializableAttribute
// to a class to have it serialized by the DataContractSerializer.
s。
答案 1 :(得分:0)
@Samar最好的方法是只使用DataContract属性,因为它在内部使Serializable属性进入图片(默认情况下)。