我是C#的新手,我有疑问,
我有一个Web服务(webservice1),里面有一个类..该类有一个枚举..
public class testnum
{
public enum test
{
[Description("1,2,3")]
123,
[Description("3,4,5")]
345,
[Description("6,7,8 ")]
678,
}
}
我正在尝试为Web服务创建一个客户端,并希望将枚举描述绑定到下拉列表,并将枚举值绑定到各自的列表项......我正在尝试某些事情,如
protected void ddl1_Load(object sender, EventArgs e)
{
webservice1.Service s = new webservice1.Service();
foreach( webservice1.test value in Enum.GetValues(typeof(webservice1.test)))
{
ddl1.Items.Add(new ListItem(value.GetEnumDescription(), value.ToString()));
}
}
}
public static class ENUMHelper
{
public static string GetEnumDescription(this Enum value)
{
FieldInfo fi = value.GetType().GetField(value.ToString());
DescriptionAttribute[] attributes =
(DescriptionAttribute[])fi.GetCustomAttributes(
typeof(DescriptionAttribute),
false);
if (attributes != null &&
attributes.Length > 0)
return attributes[0].Description;
else
return value.ToString();
}
}
当我这样做时,它会将描述放入下拉列表中......而是获取值..
有人能告诉我哪里出错了吗?
我甚至看了.NET databinding a combobox to a string enum with Description attributes,但它在我的情况下起作用..有人可以帮忙。
PS:请告诉我,如果我不清楚,我会再次解释我的问题!答案 0 :(得分:1)
解决这个问题的最佳方法是在客户端项目中包含描述测试的源文件,而不是像@tim s在他的一条评论中那样让它生成对它的服务引用!!