WCF 使用POCO

image

很多时候,我们定义一个类的时候,并没有定义该类是否是DataContract, 对应的字段也没有标识为DataMember.但是我们在WCF中使用的时候,可以直接使用这个类作为数据契约而不会出现异常。

原因在于WCF将这种POCO类型的自动推断为数据契约,开放所有Public的属性为DataMember.

如果POCO这种类型没有标注[DataContract],而标注了[DataMember], 那所有这些[DataMember]将会被忽视。

如果POCO类型没有标注任何[DataContract]和[DataMember],自动将Public的属性标记上[DataMember]

image

当然我们认为这个自动推测的行为是不好的,我们应当显示的指定所有DTO对象的DataContract属性。

你可能感兴趣的:(WCF)