C# 可序列化类中的.net 4.6方法
我刚接触序列化,现在面临一个问题。我有一个可序列化的类,它必须包含一个方法。但由于该方法,我在序列化程序初始化期间遇到了一个错误(当我注释该方法时,不会抛出任何错误)。 问题是,有没有办法在类中标记方法,以便序列化程序忽略它并正常工作 这是我的可序列化类:C# 可序列化类中的.net 4.6方法,c#,.net,xml,serialization,deserialization,C#,.net,Xml,Serialization,Deserialization,我刚接触序列化,现在面临一个问题。我有一个可序列化的类,它必须包含一个方法。但由于该方法,我在序列化程序初始化期间遇到了一个错误(当我注释该方法时,不会抛出任何错误)。 问题是,有没有办法在类中标记方法,以便序列化程序忽略它并正常工作 这是我的可序列化类: [Serializable] public class Key { [XmlAttribute("Id")] public Guid Id { get; set; } [Xml
[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”的错误
修正了它:
[XmlElement("CEK")]
public string CEK { private get; set; }
该属性引起异常;您无法在serializable类中获取私有方法。您忘记告诉我们错误是什么。请查看有关提供代码的指导。。。序列化通常会忽略方法,因此如果没有实际的错误消息或完整的代码来重现错误,则很难猜出错误所在。除非您想使用
BinaryFormatter
进行序列化,否则不需要[Serializable]
。这些方法中是否没有内部异常?建议“有错误反映类型”错误有一个内部异常,指示根本原因。