public sealed class test<T> : IEnumerable<T> where T : new()
{
public sealed class Ignore : Attribute { }
}
public class test_2
{
[ ???? ]
string helllo;
}
有没有办法从test<T>
类外部访问属性?
我似乎无法找到一个。
答案 0 :(得分:1)
C#不支持通用属性。 我知道你的属性不是通用的,但我想你希望它在泛型类中使用属性级别的T,这使得属性通用(你会为每个T获得不同的忽略类型)
很遗憾,你无法在C#中实现这一目标。 Why does C# forbid generic attribute types?
从评论更新:
您可以在命名空间的范围内具有Ignore属性。您可以对test<T>
进行反射,并使用“忽略”属性查找属性。
public sealed class Ignore : Attribute { }
public sealed class test<T> : IEnumerable<T> where T : new()
{
[Ignore]
public test_2 SomeProperty { get; set; }
}
public class test_2
{
[Ignore]
public string TestData { get; set; }
}