我正在寻找一个在.Net 4.5中获取调用方法的类名的解决方案,并且我希望使用自定义属性属性来实现它。 Here是使用System属性CallerMemberName获取成员名称的示例,但对于我自己的属性,我不确定要实现哪些函数来返回值。
是否有人知道有关实施此类属性或任何示例的更多文档的链接?
到目前为止,我计划使用以下内容:
[AttributeUsage(AttributeTargets.Parameter)]
class MyAttribute : Attribute
{
//some method to implement returning the attribute value
}
class CallerTestClass
{
public string GetCallerClass(
[MyAttribute]string className = "")
{
return className;
}
}
答案 0 :(得分:3)
基本上你不能。 C#编译器具有CallerMemberName
属性的特殊知识 - 不会具有您的属性的特殊知识。
听起来你应该只能使用CallerMemberName
,而不是拥有自己的属性......