Как я могу проверить, зарегистрирован ли тип COM? - PullRequest
0 голосов
/ 01 сентября 2010

Скажем, у меня есть загрузка типов COM, и я хотел бы проверить, был ли зарегистрирован определенный тип.Я могу использовать Activator.CreateInstance, чтобы на самом деле попытаться создать класс, но мне было интересно, есть ли более простой способ заранее проверить, действительно ли класс зарегистрирован.

Я бы предпочел не заходить в реестр напрямую - я ищу что-то простое в использовании, например, вызов Activator.CreateInstance выше.

Спасибо

1 Ответ

1 голос
/ 01 сентября 2010

NB.Activator.CreateInstance не создает непосредственно экземпляр класса COM, ему требуется, чтобы была создана и установлена ​​сборка взаимодействия (например, tlbimp.exe) - но здесь это не имеет значения.Самый простой способ проверить без чтения реестра - попытаться создать экземпляр и отловить возможные исключения из-за того, что тип недоступен.(Например, COMException, если базовый компонент установлен неправильно, TypeLoadException (IIRC), если сборка взаимодействия отсутствует.)

...