如何从枚举成员wcf获取值
本文关键字:获取 wcf 枚举成员 | 更新日期: 2023-09-27 18:16:51
我有WCF服务与Enum作为数据契约。如何获取枚举值的列表。这是代码:
WCF 中的[DataContract]
public enum MyEnum
{
[EnumMember(Value="My first member")]
First,
[EnumMember(Value="My second member")]
Second,
[EnumMember(Value="My third member")]
Third
}
在客户端应用程序:
Array myEnumMembers = Enum.GetValues(typeof(MyEnum));
foreach(MyEnum member in myEnumMembers )
{
MembersListBoxControl.Items.Add(member.ToString());
}
这个可以工作,但是在我的列表框控件中,它显示没有空格的值,像这样:
Myfirstmember
Mysecondmember
Mythirdmember
由于Enum
的值必须遵循与c#中所有标识符相同的命名规则,我认为不能这样做。
您可以使用一些资源文件来存储字符串表示或尝试使用Description
属性,如下所示:
public enum MyEnum
{
[Description("Description for Foo")]
Foo,
[Description("Description for Bar")]
Bar
}
MyEnum x = MyEnum.Foo;
string description = x.GetDescription(); // extension method provided in original answer.
MSDN关于属性的文章