Yansıma özelliği öznitelik adı ve değer elde
Dersim var, hadi Kitap arama özelliği Adı ile. Bu özellik ile, bir öznitelik ile ilişkili.
public class Book
{
[Author("AuthorName")]
public string Name
{
get; private set;
}
}
Benim ana yöntem, yansıtma kullanarak ve her öznitelik anahtar değer çifti almak isteyen her özellik için geldim. Bu örnekte, "" adı özniteliği "özniteliği değeri. AuthorName Yazar beklerdim yani
Nasıl benim özellikleri öznitelik adı ve değer Yansıma kullanarak alabilir miyim? soru:
CEVAP
typeof(Book).GetProperties()
PropertyInfo
örnekleri bir dizi elde etmek için kullanın. O GetCustomAttribute()
PropertyInfo
her eğer bunlardan herhangi Author
Öznitelik türü olup olmadığını görmek için kullanın. Eğer yaparlarsa, emlak bilgi mülkü ve öznitelik öznitelik değerleri adına alabilirsiniz.
Bir şey bu doğrultuda Tarama türü için özellikleri olan bir özel öznitelik türü ve dönmek veri sözlüğü (not bu yapılabilir daha dinamik geçerken tip olarak rutin):
public static Dictionary<string, string> GetAuthors()
{
Dictionary<string, string> _dict = new Dictionary<string, string>();
PropertyInfo[] props = typeof(Book).GetProperties();
foreach (PropertyInfo prop in props)
{
object[] attrs = prop.GetCustomAttributes(true);
foreach (object attr in attrs)
{
AuthorAttribute authAttr = attr as AuthorAttribute;
if (authAttr != null)
{
string propName = prop.Name;
string auth = authAttr.Name;
_dict.Add(propName, auth);
}
}
}
return _dict;
}
Elde XPath kullanarak öznitelik...
Kalıtsal öznitelik adlarını alma/Java ...
Bir dize değeri ile yansıma olarak aya...
Nasıl bir değer boyutu 8 bit daha büyü...
Nasıl değer özelliği için AngularJS�...