如何忽略 属性 在自动生成的 WSDL 中被序列化?

How can I ignore a property from being serialized in auto generated WSDL?

我有一个网络服务,在服务器上工作时,我的 class 中需要一个额外的 属性,但我不希望这个 属性 在客户端(未在 WSDL 中序列化)。我试过 [XMLIgnore],但没用。我在 class 上另外添加了 [Serializable],在这种情况下 属性 以不同的名称 _x003C_MyPublicField_x003E_k__BackingField1 序列化。有没有办法在不编写我自己的序列化程序的情况下做到这一点?

提前致谢。

P.S。我也试过这个 Omit Properties from WebControl Serialization 但没有成功。

您是否尝试删除 [DataMember] 属性??

您可以使用 [NonSerialized] 属性来防止 class 属性被序列化。参见: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; }
}