我有一个类,其中一些属性具有 DisplayNameEx 属性,该属性派生自 DisplayNameAttibute:
public class Settings
{
[DisplayNameEx("User")]
public UserData User { get; set; }
}
public class DisplayNameExAttribute : DisplayNameAttribute
{
public DisplayNameExAttribute(string id)
{
}
}
我将我的属性的名称全部作为字符串 id 传递,因此以这种方式编写代码会更容易:
public class Settings
{
[DisplayNameEx()]
public UserData User { get; set; }
}
我可以通过 CallerMemberName 属性获得的属性名称:
public class DisplayNameExAttribute : DisplayNameAttribute
{
public DisplayNameExAttribute([CallerMemberName] string propertyName = null)
{
//propertyName I get, what about class name (Settings in my case)?
}
}
是否也可以获取类名?
最佳答案
这是不可能的。在您的情况下,最好的方法是在属性的构造函数中使用带有类名的参数:
public class DisplayNameExAttribute : DisplayNameAttribute
{
public DisplayNameExAttribute(string className = null)
{
}
}
然后像这样使用它:
public class Settings
{
[DisplayNameEx("Settings")]
public UserData User { get; set; }
}
关于c# - 在 DisplayNameAttribute 派生类中获取属性和类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29722862/