調整する文字列値を見つけるために使用する列挙型があります。これらの列挙型の 1 つにスペースが含まれているため、説明属性を使用してその値を見つけようとしています。DescriptionAttribute が見つかった後、パブリック クラスにキャストし直すのに問題があります。
public class Address
{
...blah...more class datatypes here...
public AddressType Type { get; set; }
...blah....
}
public enum AddressType
{
FRA = 0,
JAP = 1,
MEX = 2,
CAN = 3,
[Description("United States")]
UnitedStates = 4,
}
if (Address.Type.ToString() == "UnitedStates")
{
Adddress.Type = GetDescription(Address.Type);
}
private static AddressType GetDescription(AddressType addrType)
{
FieldInfo fi = addrType.GetType().GetField(addrType.ToString());
DescriptionAttribute[] attributes =
(DescriptionAttribute[])fi.GetCustomAttributes(
typeof(DescriptionAttribute), false);
return (attributes.Length > 0) ? attributes[0].Description : addrType.ToString();
}
GetDescription メソッド内で、パブリック クラスのデータ型 'AddressType' にキャストして戻すにはどうすればよいですか? ここでは文字列であるため、失敗します。