MonoCecil Type.IsCOMObject эквивалент? - PullRequest
0 голосов
/ 21 апреля 2011

Я хотел бы создать метод, который принимает TypeDefinition и сообщает мне, представляет ли он COM-объект.Метод также должен работать в случае .NET 4.0 «Типы встроенного взаимодействия COM».

Есть идеи, как мне это сделать?

1 Ответ

3 голосов
/ 24 апреля 2011

Может быть что-то вроде этого:

    public static bool IsCOMObject(TypeDefinition type)
    {
        if (type == null)
            throw new ArgumentNullException("type");

        return (type.Attributes & TypeAttributes.Import) == TypeAttributes.Import;
    }

Из официального источника здесь: Common Language Infrastructure (CLI).Раздел II: Определение и семантика метаданных .

10.1 Тип заголовка (ClassHeader):

Специфичная для реализации (Microsoft)

Приведенная выше грамматика также включаетClassAttr :: = import, чтобы указать, что тип импортируется из библиотеки типов COM.

...