如何忽略在自动生成的WSDL中序列化的属性?
我有一个web服务,并且在服务器上工作时需要我的类中有一个额外的属性,但我不希望在客户端上看到此属性(未在WSDL中序列化)。我试过[XMLIgnore]
,但它没有奏效。我还在我的课上加了[Serializable]
,在这种情况下,这个房产是以不同名字_x003C_MyPublicField_x003E_k__BackingField1
连载的。有没有办法做到这一点,而不写我自己的序列化程序?如何忽略在自动生成的WSDL中序列化的属性?
在此先感谢。
P.S.我也试过这个Omit Properties from WebControl Serialization,但没有运气。
您可以使用[NonSerialized]
属性来防止序列化类属性。请参阅:https://msdn.microsoft.com/en-us/library/system.nonserializedattribute(v=vs.110).aspx
[Serializable]
public class MyClass
{
public int MySerializedProperty { get; set; }
[NonSerialized]
public string MyNonSerializedProperty { get; set; }
}
'MyClass'应该用'[Serializable]'装饰。 –
您是否尝试删除[DataMember]属性?
没有数据成员属性 –
你试过'[NonSerialized]'吗? https://msdn.microsoft.com/en-us/library/system.nonserializedattribute(v=vs.110).aspx – Kritner
剂量属性必须公开吗?将它设置为私人或保护解决问题? – Ogge
@Kritner我玩了一下,它终于奏效了。谢谢! –