我有些课,福克斯的例子

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)

10-08 03:59