私は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();
}
}
私がこれを行うとき、それはドロップダウンリストに説明を取得しません..むしろそれは値を取得します..
誰かが私にどこが間違っているのか教えてもらえますか?
コンボボックスをDescription属性を持つ文字列列挙型にデータバインディングする.NETも調べましたが、私の場合は機能しません..誰かが助けてくれますか。
PS:はっきりしない場合は、もう一度質問を説明してください。