Sur*_*LSV 8 .net c# wcf serialization
我们有一个使用多个DataContracts的现有WCF服务.我们想要根据设备修改序列化,这样当从移动设备访问时,服务应该只序列化一些重要的数据成员(不是全部)
我们这里有两个选择
我们不想使用第一个选项,因为它在将来引入了许多冗余代码问题
小型研究表明,我们需要使用IXmlSerializable并覆盖readXML()和writeXML()方法.但与此同时,我已经看到DataContract和IXmlSerializable不应该一起使用的地方
任何搞乱实际序列化的例子都非常感谢.
[DataContract]
public class TokenMessage
{
string tokenValue;
string extraValue;
[DataMember]
public string Token
{
get { return tokenValue; }
set { tokenValue = value; }
}
[DataMember]
public string Extra
{
get { return extraValue; }
set { extraValue = value; }
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当我从移动设备访问返回典型TokenMessage数据协定的服务时,我不希望序列化"额外"数据成员,即当我为操作合同提供不同的参数时,它应该能够序列化部分/全部数据成员(取决于操作)
PS:现在请忽略设备检测部分.让我们假设我们在操作合同中有一个参数,这有助于我们识别设备
小智 -2
在您的模型中添加属性“ShouldSerializeYOUR_PROPERTY_NAME”,当您不希望属性序列化时将其设置为 false。在此处查看更多信息:http://msdn.microsoft.com/en-us/library/system.windows.dependencyobject.shouldserializeproperty (v=vs.110).aspx