小编use*_*872的帖子

在嵌套属性上使用XmlAttributeOverrides

我试图使用XmlAttributeOverrides来控制哪些类属性在序列化后显示在xml中。它适用于“根”类上的属性,但不适用于嵌套属性。这是一个简单的示例,以说明我要完成的工作。

我的班级层次结构如下:

public class Main
{
    public string Name { get; set; }
    public Location Address { get; set; }
}

public class Location
{
    public string StreetAddress { get; set; }
    public Contact ContactInfo{ get; set; }
}

public class Contact
{
    public string PhoneNumber { get; set; }
    public string EmailAddr { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

当我序列化Main()时,我得到如下信息:

<Main>
    <Name></Name>
    <Address>
        <StreetAddress></StreetAddress>
        <ContactInfo>
            <PhoneNumber></PhoneNumber>
            <EmailAddr></EmailAddr>
        </ContactInfo>
    </Address>
</Main>
Run Code Online (Sandbox Code Playgroud)

我所能做的就是通过使用以下命令来避免显示名称或地址:

XmlAttributeOverrides overrides = new XmlAttributeOverrides();
XmlAttributes attribs = new XmlAttributes(); …
Run Code Online (Sandbox Code Playgroud)

c# class xml-attribute xmlserializer xmlignore

2
推荐指数
2
解决办法
8371
查看次数

标签 统计

c# ×1

class ×1

xml-attribute ×1

xmlignore ×1

xmlserializer ×1