我是序列化的新手,我遇到了问题。我有一个可序列化的类,它必须包含一个方法。但由于该方法,我在序列化程序初始化期间收到错误(当我评论该方法时,不会抛出任何错误)。 问题是 - 有没有办法在类中标记方法,所以序列化程序会忽略它并正常工作?
这是我的可序列化类:
[Serializable]
public class Key
{
[XmlAttribute("Id")]
public Guid Id { get; set; }
[XmlAttribute("Kid")]
public Guid Kid { get; set; }
[XmlElement("CEK")]
public string CEK { private get; set; }
public string Foo()
{...}
}
我在数据隐私方面做了一些修改,但它不会影响主题。
以下是我如何进行序列化:
StringReader strReader = null;
XmlSerializer serializer = null;
XmlTextReader xmlReader = null;
Object obj = null;
try
{
strReader = new StringReader(xml);
serializer = new XmlSerializer(objectType,
new XmlRootAttribute
{
ElementName = "someNS",
Namespace = "url.to.some.namespace"
});
xmlReader = new XmlTextReader(strReader);
obj = serializer.Deserialize(xmlReader);
}
此部分引发错误:
serializer = new XmlSerializer(objectType,
new XmlRootAttribute
{
ElementName = "someNS",
Namespace = "url.to.some.namespace"
});
更新: 对,忘了错误。它是以下内容:
System.InvalidOperationException:'反映类型时出错 'MyProject.Objects.Key''。
和内在的例外:
InvalidOperationException:反映属性时出错 '键'。 InvalidOperationException:存在反映类型“MyProject.Objects.Key”的错误。
答案 0 :(得分:1)
修正了它:
[XmlElement("CEK")]
public string CEK { private get; set; }
此属性导致异常;你无法在序列化类中获得私有方法。