我编写了自定义属性属性并将其设置在我班级的几个属性中。现在我想在运行时只获取具有此属性的属性,能够获取属性的值以及属性字段的值。你能帮我完成这项任务吗? 谢谢你的帮助
答案 0 :(得分:14)
以下是一个例子:
void Main()
{
var myC = new C { Abc = "Hello!" };
var t = typeof(C);
foreach (var prop in t.GetProperties())
{
var attr = prop.GetCustomAttributes(typeof(StringLengthAttribute), true).Cast<StringLengthAttribute>().FirstOrDefault();
if (attr != null)
{
var attrValue = attr.MaximumLength; // 100
var propertyValue = prop.GetValue(myC, null); // "Hello!"
}
}
}
class C
{
[StringLength(100)]
public string Abc {get;set;}
}
答案 1 :(得分:0)
这里有一篇文章(包含代码示例):https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-6099345.html
以及此搜索中的其他几个地方:http://www.bing.com/search?q=use+reflection+to+get+properties+and+values&src=IE-SearchBox&FORM=IE8SRC
答案 2 :(得分:0)