1
我是新来的C#和我有问题,获取枚举说明从一类web服务
我有有一个类中有一个Web服务(webservice1)..类有一个enum ..
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();
}
}
,当我做到这一点dosent得到说明进入下降downlist ..而它得到的值..
有人可以让我知道IA要去错误?
我甚至看了.NET databinding a combobox to a string enum with Description attributes但它在我的情况..可以有人帮dosent工作。
PS:让我知道如果我不清楚我再解释一下我的问题!
客户将有一个包含了'test'枚举类型的服务引用。查看生成的.cs代码,看看它是否保留了'Description'属性。对我来说它似乎没有。在这种情况下,你需要以另一种方式去做。一种方法是尝试在客户端项目中包含描述'test'的源文件,而不是让它生成服务引用。这样,'Description'属性仍然存在。请注意,这意味着它将在客户端进行硬编码,可能并不总是与服务器匹配。 –
我在哪里可以看到服务参考..我只是有service.disco和service.wsdl :(抱歉,我现在..如果这个问题是太傻了..我高度道歉:(u能请让我知道? – helpme
在Solution Explorer窗口中,单击显示所有文件按钮。您应该看到在同一区域中的cs文件,或者在Windows资源管理器中打开您的参考文件夹,并寻找它。 –