我是WCF的新手,有一个简单的问题…
我的DataContract类从它公开的方法之一向使用者返回一个枚举类型。
使用者能够看到枚举类型,并实例化该类型的变量。
但是,我没有为服务中的枚举提供DataContract或EnumMembers。
我的问题是,为什么客户仍然可以看到它?我想我必须使它成为一个DataContract,才能使它与业务对象一起序列化,不是吗?
发布于 2010-05-13 17:14:13
是的,你必须--最高可达.NET 3.5 SP1。
微软“放松”了规则,现在如果你不给任何东西加上任何[DataContract]和[DataMember]属性,DataContractSerializer的行为将像XmlSerializer一样:它只是简单地序列化所有公共属性和必要的类型。
虽然对于简单的场景,这可能是一种“更简单”的方法,但您也失去了对名称空间、排序等的大量控制-所以我更喜欢显式地应用这些属性,只是为了清楚地表达(和文档!)我的意图。但在.NET 3.5 SP1中,DataContractSerializer不再需要和强制执行它。
发布于 2018-05-29 18:25:23
如果我们没有在任何东西上添加任何DataContract和DataMember属性,它将自动序列化所有公共属性,并且更高版本的.NET3.5 SP1支持必要的types.This功能。
https://stackoverflow.com/questions/2825516
复制相似问题