从 Web 服务中的类获取枚举说明

本文关键字:获取 枚举 说明 Web 服务 | 更新日期: 2023-09-27 18:33:36

我是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();         
}

}

当我这样做时,它会将描述放入下拉列表中..而是获取值..

有人可以让我知道 IA 哪里出错了?

我什至查看了 .NET 数据将组合框绑定到具有描述属性的字符串枚举,但它在我的情况下确实有效.. 有人可以帮忙吗?

PS:如果我不清楚,请告诉我,我会再次解释我的问题!

从 Web 服务中的类获取枚举说明

解决此问题的最佳

方法是在客户端项目中包含描述测试的源文件,而不是让它生成对它的服务引用,正如 @tim s 在他的一个评论中建议的那样!!