指示 XmlSerializer 处理序列化/反序列化数据?

发布于 2024-12-12 06:18:31 字数 204 浏览 0 评论 0原文

我有一个枚举属性。我希望该属性的序列化 XML 是枚举的拆分驼峰式字符串,反之亦然。

我有两个函数,一个是 ConcatCamelCase ,另一个是 SplitCamelCase ,我希望序列化器相应地使用它们,这可以通过用属性装饰字段来实现吗?

如果不是,那么在不必弄乱所有其他字段的情况下还有其他选择吗?

I have an enum property. I want the serialized XML for this property to be the splitted camel-case string of the enum and vice versa.

I have two functions, one is ConcatCamelCase and the other is SplitCamelCase, I want the serializer to use them accordingly, is this possible by just decorating the field with an attribute?

If no, what are the other option without having to mess with all the other fields?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无人接听 2024-12-19 06:18:31

你必须做这样的事情:

public class SomeClass {
    [XmlIgnore]
    public MyEnum MyRealProperty {get;set;}

    [XmlElement("MyRealProperty")]
    [EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
    public string MyProxyProperty
    {
        get {return SplitCamelCase(MyRealProperty);}
        set {MyRealProperty = ConcatCamelCase(value);}
    }
}

You'll have to do something like this:

public class SomeClass {
    [XmlIgnore]
    public MyEnum MyRealProperty {get;set;}

    [XmlElement("MyRealProperty")]
    [EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
    public string MyProxyProperty
    {
        get {return SplitCamelCase(MyRealProperty);}
        set {MyRealProperty = ConcatCamelCase(value);}
    }
}
梦幻之岛 2024-12-19 06:18:31

您可以使用 XMlSerialization 属性显式设置序列化的所有内容的名称。

[XmlRoot("theNameYouWant")]

[XmlElement("theNameYouWant")]

You can explicitly set the name of everything that is serialized using the XMlSerialization attributes.

[XmlRoot("theNameYouWant")]

[XmlElement("theNameYouWant")]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文