gpt4 book ai didi

c# - 访问自定义属性中的声明类?

转载 作者:太空宇宙 更新时间:2023-11-03 21:23:57 24 4
gpt4 key购买 nike

我创建了一个自定义属性,我想在其中访问自定义属性属性的声明类。

例如:

public class Dec
{
[MyCustomAttribute]
public string Bar {get;set;}
}

在这里,我想(在 MyCustomAttribute 的类中)获取声明类 (Dec) 的类型。这有可能吗?

编辑:感谢大家的回复。我今天学到了一些新东西。

最佳答案

正如我所写的,仅当您使用 type.GetCustomAttributes() 请求属性时,属性才会被实例化,但那时您已经拥有了 Type。你唯一能做的就是:

[AttributeUsage(AttributeTargets.Property)]
public class MyCustomAttribute : Attribute
{
public void DoSomething(Type t)
{

}
}

public class Dec
{
[MyCustomAttribute]
public string Bar { get; set; }
}

// Start of usage example

Type type = typeof(Dec);
var attributes = type.GetCustomAttributes(true);
var myCustomAttributes = attributes.OfType<MyCustomAttribute>();
// Shorter (no need for the first var attributes line):
// var myCustomAttributes = Attribute.GetCustomAttributes(type, typeof(MyCustomAttribute), true);


foreach (MyCustomAttribute attr in myCustomAttributes)
{
attr.DoSomething(type);
}

因此将类型作为参数传递。

关于c# - 访问自定义属性中的声明类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28609643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com