c# - 属性的代码如何知道它应用于什么类型?

标签 c# .net attributes

public class SomeAttr: Attribute
{
    void Method()
    {
        //here I want to know the type this instance of attribute is applied to
    }
}

最佳答案

在常规 .NET 中,它不会也不能(除非您手动告诉它);对不起。您需要在属性构造函数/属性中包含一些 typeof(Foo)。如果您在谈论 AOP(PostSharp 等),那么一切都将结束。

如果您指的是 TypeDescriptor 使用的一些属性([DisplayName][TypeConverter] 等),那么可能有其他选项 - 但实现起来相当具体且不简单。

关于c# - 属性的代码如何知道它应用于什么类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1510366/

相关文章:

c# - 动态加载用户控件

c# - .Net 中是否有任何库可以进行一些基本的音频编辑?

android - iOS/Android 与 Delphi/C# 桌面应用程序同步

html - 当属性值可以在 HTML5 中不被引用时

c# - 如何在 .net 属性上注入(inject)属性依赖项?

c# - 如何使redis中散列内的键过期

c# - Java 等效于 C# XML 签名方法

c# - 可变范围抽象

c# - 如何在可接受的误差范围内检查两位小数的相等性

c# - GetCustomAttributes 继承参数与 AttributeUsage.Inherited