c# - 你能强制将枚举值序列化为整数吗?

标签 c# .net xml-serialization attributes

<分区>

Possible Duplicate:
How do I serialize an enum value as an int?

大家好!

我想知道是否有办法强制将枚举值序列化为其整数值,而不是其字符串表示形式。

为了让您了解情况: 在一个严重依赖 Web 服务的 Web 应用程序中,我们为所有请求 header 使用一个基类,与请求类型无关。

我想在 header 中添加一个结果字段,这样我们就有了一个地方可以将有关操作如何在 Web 服务端进行的提示传递回调用应用程序。我们已经为此声明了一个枚举,但由于我们有旧应用程序调用那些可能不知道这些枚举的 Web 服务,我想将这些值序列化为整数。

我们已经不得不使用 [XmlElement(ElementName = "string representationOfAttributeName")] 来减少这些 header 的长度,因为我们偶尔会超过 IE 的最大 url 长度,我想知道是否有类似的属性来强制将枚举值序列化为整数。

有人听说过这样的属性吗?

一如既往,感谢您的帮助, 帕斯卡

最佳答案

枚举会序列化为整数。但一般来说,如果您不喜欢其中一个属性被序列化为 XML 的方式,您可以这样做:

[XmlIgnore]
public MyThing MyThing { get; set; }

[XmlElement("MyThing")]
[EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
public string MyThingForSerialization
{
    get { return //convert MyThing to string; }
    set { MyThing = //convert string to MyThing; }
}

关于c# - 你能强制将枚举值序列化为整数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/117348/

相关文章:

java - 从 DOM 中的 XML 文件中删除数据?

design-patterns - 对象到 xml 转换的设计模式

java - 在Android中编写strings.xml

c# - 可以在 C# 中组合两个 Actions 吗?

c# - mvc调用api Controller PostAsJsonAsync操作方法名称获取

c# - C# 中的 DLLImport 调用不正确

.net - 如何在 MVC3 中使用 Ninject 将服务注入(inject) View / View 模型?

c# - 将 New Relic 的自定义检测添加到 Windows 中的后台进程

c# - 线程池顺序运行?

c# - 通过命名数组提供内部列表访问