gpt4 book ai didi

c# - 测试类型是否是属性?

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

我得到了以下代码:

var library = Assembly.LoadFrom(libraryPath);

var namespaces = library.GetTypes().GroupBy(t => t.Namespace);
foreach (var typesInNamespace in namespaces)
{
foreach (var type in typesInNamespace)
{
[...]
}
}

但是当我想用这段代码测试当前类型是否是一个属性时:

var attributes = typesInNamespace.Where(t => t is System.Attribute);

if (type is System.Attribute)

它们都失败了,我收到以下警告:

The given expression is never of the provided ('System.Attribute') type

类定义如下:

class ImportableModelAttribute : Attribute
{
}

class ImportableAttribute : Attribute
{
}

老实说,我期待一种 API 来处理属性(类似于 if (type.IsAtteribute)),但我没有找到任何东西,这就是我尝试这样做的原因这边!

最佳答案

A Type 本身永远不是属性(就像 typeof(string) 不是字符串一样),但我怀疑您想要:

if (typeof(Attribute).IsAssignableFrom(type))

(当然,或者将其放入 lambda 表达式中。)

请参阅 Type.IsAssignableFrom 的文档获取更多信息。

关于c# - 测试类型是否是属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9173028/

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