【发布时间】:2018-04-01 12:10:18
【问题描述】:
我正在尝试简化从属性属性中提取数据的代码。
属性:
[AttributeUsage(AttributeTargets.Property)]
class NameAttribute : Attribute
{
public string Name { get; }
public ColumnAttribute(string name)
{
Name = name;
}
}
属性内容提取代码(删除空检查):
public static string GetName<T>(string propName)
{
var propertyInfo = typeof(T).GetProperty(propName);
var nameAttribute = (NameAttribute)propertyInfo.GetCustomAttributes(typeof(NameAttribute)).FirstOrDefault();
return nameAttribute.Name;
}
示例类:
class TestClass
{
[Column("SomeName")]
public object NamedProperty { get; set; }
}
调用示例:
var name = GetName<TestClass>(nameof(TestClass.NamedProperty))
有没有办法重写属性内容提取方法来简化/缩短它的调用。由于它的长度,它对我来说太不方便了。
CallerMemberNameAttribute 之类的东西会很棒,但我什么也没找到。
【问题讨论】:
-
我觉得还可以
-
我正在寻找将其插入字符串的方法,每个字符串 2..5 次调用,但当前调用语法对它来说太长了
标签: c# reflection properties attributes