Orada Custom tarafından Enum alın hangi bir çok örnek Get Enum from Description attributealın Enum Özel Özellik (Genel) tarafından
public static class EnumEx
{
public static T GetValueFromDescription<T>(string description)
{
var type = typeof(T);
if(!type.IsEnum) throw new InvalidOperationException();
foreach(var field in type.GetFields())
{
var attribute = Attribute.GetCustomAttribute(field,
typeof(DescriptionAttribute)) as DescriptionAttribute;
if(attribute != null)
{
if(attribute.Description == description)
return (T)field.GetValue(null);
}
else
{
if(field.Name == description)
return (T)field.GetValue(null);
}
}
throw new ArgumentException("Not found.", "description");
// or return default(T);
}
}
burada gibi niteliklerin Ama burada sorun ÖzellikTürü yani kodlamalısınız olmasıdır vardır typeof(DescriptionAttribute)) as DescriptionAttribute
CustomAttributeType'ı kodlamak zorunda kalmamak için bu örneği Genel uzantıya nasıl dönüştürebilirim.
kullanmak, ama şunu bil ki kullanarak arama yapabilmek için girdi parametresinin anlamı ve kullanımı. Örneğin şimdi bu ölçütlere sahip olabilirsiniz (if (attribute.Description == description) ', ancak jenerik bir parametreyi geçtiğinizde ne olur? –
Bunu nasıl tercüme edersiniz: 'öznitelik' 'descriptionAttribute' değilse' attribute.Description'? – HimBromBeere