【发布时间】:2016-03-24 20:50:16
【问题描述】:
我用 xsd.exe 生成了一个类,结果是这样的(部分):
public partial class MyClass{
private SignatureType signatureField;
[System.Xml.Serialization.XmlElementAttribute(Namespace = "http://www.w3.org/2000/09/xmldsig#")]
public SignatureType Signature {
get {
return this.signatureField;
}
set {
this.signatureField = value;
}
}
}
我正在编写一个 Asp.Net 5 控制器,该控制器将该对象输出为 XML,问题是序列化器使用的是私有属性的名称,而不是像这样结束的公共名称
<MyClass>
<signatureField></signatureField>
</MyClass>
带有字段后缀。
这可能是什么原因造成的?
谢谢
【问题讨论】:
-
能否请您显示返回对象或执行序列化的代码?
-
如果 1) 您将班级标记为
[Serializable]并且 2) 您实际上使用的是DataContractSerializer而不是XmlSerializer,这可能会发生。详情可以查看Is there a way to make DataContractSerializer output cleaner XML?。您可能需要提供complete examlple 以便我们提供更多帮助。 -
是的,该类被标记为可序列化,我会尝试不使用它。
-
执行序列化的代码是.net mvc...控制器返回一个对象,我在标题中要求xml
标签: c# xml asp.net-mvc xmlserializer