私は本当に理解していません、なぜあなたはそれのために別の属性が必要ですか?サンプルコードは次のようになります。使用に
public class MyAttribute : Attribute
{
public static string GetAttribute(MemberInfo m)
{
var displayName =(DisplayNameAttribute)Attribute
.GetCustomAttribute(m, typeof(DisplayNameAttribute));
return displayName.DisplayName;
}
}
:あなたはMyAttribute
は、常にプロパティがDisplayName
と同じに設定したことを
//First Name
var firstName= MyAttribute.GetAttribute(typeof(Test)
.GetMember(nameof(Test.SomeProperty)).First());
//Last Name
var lastName = MyAttribute.GetAttribute(typeof(Test)
.GetMember(nameof(Test.SomeOtherProperty)).First());
UPDATEあなただけの場合、あなたはこのような何かを行うことができます:
public class MyAttribute : Attribute
{
public string Display { get; set; }
public MyAttribute([CallerMemberName] string propertyName = null)
{
Display = ((DisplayNameAttribute)GetCustomAttribute(typeof(Test).GetMember(propertyName).First(), typeof(DisplayNameAttribute))).DisplayName;
}
}