NonSerialized无法工作

mjk*_*026 4 c# xml serialization

我是一个类的序列化,但我不能排除我班上的一些字段.

[Serializable]
public class DicData
{

    private GDicJson DeserializedGDicJson = new GDicJson();
    public UOCDicData BuiltDicData;                        

    [NonSerialized]
    public string CacheName = "";                          


}
Run Code Online (Sandbox Code Playgroud)

在我的预期中,公共字段CacheName未包含在我的*.xml反序列化输出中,但它包含在.xml文件中.

这里是序列化rutine.

XmlSerializer myXml = new XmlSerializer(typeof(DicData), "test");
myXml.Serialize(myFile, this); //note:a serializing perform in method of himself.
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 17

对于XmlSerializer你想

[XmlIgnore]
Run Code Online (Sandbox Code Playgroud)

另外,请注意[Serializable]在这种情况下不需要.

最后一点:不鼓励公共领域; 属性是almos总是首选.增加{get;set;}会有很长的路要走......

  • 马克是对的.XmlSerializer不关心`[Serializable]`或`[NonSerialized]`属性. (2认同)