我有些课,福克斯的例子
public class Test
{
[XmlElement(IsNullable = true)]
public string SomeProperty{get;set;}
}
当我序列化这个类的对象时,我得到
<test>
<SomeProperty>value<someproperty>
<test>
但是我需要在不改变类结构的情况下向someproperty添加属性
<test>
<SomeProperty Search="true">value<someproperty>
<test>
我该怎么做?
PS:我知道,我可以编写包含“someProperty”和bool属性“search”的对象,但它会改变类的结构
最佳答案
要使用XmlSerializer
进行此操作,您需要使用第二种类型的[XmlAttribute]
和[XmlText]
。唯一的另一个选择是IXmlSerializable
,这是:工作量大,容易出错。
选项:
更改SomeProperty
的结构
添加与SomeProperty
并行的垫片属性,并将SomeProperty
标记为[XmlIgnore]
使用完全独立的DTO模型进行序列化(当序列化不完全适合时,始终使用“转到”选项)
使用IXmlSerializable
(哎哟)
完全不使用XmlSerializer
(例如,查看linq to xml或dom)
使用XmlSerializer
,但随后编辑xml(例如通过dom或xslt)