Эквивалент CreateObject для C # 4, динамическое ключевое слово и поздняя привязка? - PullRequest
10 голосов
/ 15 июля 2010

Как создать динамический объект COM / OLE / ActiveX в C # 4.0 из идентификатора программы или ProgID (например, «Word.Application») без ссылки на библиотеку?

В C # 3.5 я бынужно написать что-то вроде

Type comObjectType = Type.GetTypeFromProgID(progId, true);
Activator.CreateInstance(comObjectType);

Есть ли более простой способ сделать это в C # 4.0, чтобы я мог назначить его переменной типа dynamic (используя ключевое слово dynamic)?

1 Ответ

14 голосов
/ 15 июля 2010

Что не так с

dynamic myTypeInstance = Activator.CreateInstance(Type.GetTypeFromProgID(typeName, true));

Если это имя известного типа, есть также

dynamic myTypeInstance = Activator.CreateInstance("typeName", "assemblyName");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...