Я получил следующий код работ:
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)
), но я ничего не нашел, поэтому я пытаюсь сделать это таким образом!