【问题标题】:How does a Property type passed to a function set the parameter value [closed]传递给函数的属性类型如何设置参数值
【发布时间】:2016-03-08 10:10:48
【问题描述】:

我正在寻找在 .Net 4.5 中获取调用方法的类名的解决方案,我希望使用自定义属性属性来实现它。 Here 是使用系统属性 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;
    }
}

【问题讨论】:

  • 请阅读格式帮助以了解如何发布代码块 - 使用缩进而不是 <code> 标签。

标签: c# .net visual-studio custom-attributes


【解决方案1】:

你不能,基本上。 C# 编译器对 CallerMemberName 属性有特殊了解 - 它对您的属性有特殊了解。

听起来您应该只能使用CallerMemberName,而不是拥有自己的属性...

【讨论】:

  • 我需要调用类,而不是调用方法。有一种方法可以使用 CallerFilePath 获取程序集信息,但我希望这样做比每次调用该方法时都解析程序集以获取类信息更有效
  • @ars265:不,没有。当然,文件可能与类名不匹配。
猜你喜欢
  • 2020-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-15
  • 2017-12-14
  • 2012-02-14
  • 2017-12-09
相关资源
最近更新 更多