所以我有属性的,从我的类的集合,我想通过循环。对于每个属性我可能有自定义属性,所以我想通过这些循环。在这种特殊情况下我有我的城市类的自定义属性这样
so I have a collection of Properties from my class which I want to loop through. For each property I may have custom attributes so I want to loop through those. In this particular case I have a custom attribute on my City Class as such
public class City { [ColumnName("OtroID")] public int CityID { get; set; } [Required(ErrorMessage = "Please Specify a City Name")] public string CityName { get; set; } }的属性被定义为这样的
The attribute is defined as such
[AttributeUsage(AttributeTargets.All)] public class ColumnName : System.Attribute { public readonly string ColumnMapName; public ColumnName(string _ColumnName) { this.ColumnMapName= _ColumnName; } }当我通过属性通过属性[工作正常],然后循环尝试循环,它只是忽略了for循环的属性,并且没有返回。
WHen I try to loop through the properties [which works fine] and then loop through the attributes it just ignores the for loop for the attribute and returns nothing.
foreach (PropertyInfo Property in PropCollection) //Loop through the collection of properties //This is important as this is how we match columns and Properties { System.Attribute[] attrs = System.Attribute.GetCustomAttributes(typeof(T)); foreach (System.Attribute attr in attrs) { if (attr is ColumnName) { ColumnName a = (ColumnName)attr; var x=string.Format("{1} Maps to {0}" ,Property.Name, a.ColumnMapName); } }当我去眼前的窗口,有一个自定义属性,我可以做财产
When I go to the immediate window for the property that has a custom attribute I can do
?Property.GetCustomAttributes(true)[0]这将返回 ColumnMapName:OtroID
我似乎无法适应这虽然
推荐答案的由原来的问题的意见重新发布,在作者要求的
只是出于兴趣是什么的typeof(T)笔?
Just out of interest what is T in typeof(T)?
在您呼叫Property.GetCustomAttribute(真)[0],但foreach循环里面你在一个typeparameter调用GetCustomattributes而不是立即窗口。
In the immediate window you are calling Property.GetCustomAttribute(true)[0] but inside the foreach loop you are calling GetCustomattributes on a typeparameter instead.
这行:
System.Attribute[] attrs = System.Attribute.GetCustomAttributes(typeof(T));应然是这个
System.Attribute[] attrs = property.GetCustomAttributes(true);最好的问候,
更多推荐
C#自定义属性从属性
发布评论