Можно ли использовать COM-объект, написанный на C#, в приложении, написанном на C#, но как COM, а не через reference?
К примеру, COM-объект написан на .NET 4.0, а приложение на .NET 2.0.
Спасибо...
Здравствуйте, Аноним, Вы писали:
А>Всем привет!
А>Можно ли использовать COM-объект, написанный на C#, в приложении, написанном на C#, но как COM, а не через reference? А>К примеру, COM-объект написан на .NET 4.0, а приложение на .NET 2.0. А>Спасибо...
Activator.CreateInstance
Народная мудрось
всем все никому ничего(с).
Re[2]: Как вызывать .NET COM-обект из .NET-клиента?
От:
Аноним
Дата:
04.02.14 16:55
Оценка:
Здравствуйте, Tom, Вы писали:
Tom>Здравствуйте, Аноним, Вы писали:
А>>Всем привет!
А>>Можно ли использовать COM-объект, написанный на C#, в приложении, написанном на C#, но как COM, а не через reference? А>>К примеру, COM-объект написан на .NET 4.0, а приложение на .NET 2.0. А>>Спасибо...
Tom>Activator.CreateInstance
понятно, спасибо...
а tlb не подцепить никак?
Re[3]: Как вызывать .NET COM-обект из .NET-клиента?
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Tom, Вы писали:
Tom>>Здравствуйте, Аноним, Вы писали:
А>>>Всем привет!
А>>>Можно ли использовать COM-объект, написанный на C#, в приложении, написанном на C#, но как COM, а не через reference? А>>>К примеру, COM-объект написан на .NET 4.0, а приложение на .NET 2.0. А>>>Спасибо...
Tom>>Activator.CreateInstance А>понятно, спасибо... А>а tlb не подцепить никак?
tlbimp?
Народная мудрось
всем все никому ничего(с).
Re[4]: Как вызывать .NET COM-обект из .NET-клиента?
От:
Аноним
Дата:
05.02.14 05:07
Оценка:
Здравствуйте, Tom, Вы писали:
Tom>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, Tom, Вы писали:
Tom>>>Здравствуйте, Аноним, Вы писали:
А>>>>Всем привет!
А>>>>Можно ли использовать COM-объект, написанный на C#, в приложении, написанном на C#, но как COM, а не через reference? А>>>>К примеру, COM-объект написан на .NET 4.0, а приложение на .NET 2.0. А>>>>Спасибо...
Tom>>>Activator.CreateInstance А>>понятно, спасибо... А>>а tlb не подцепить никак?
Tom>tlbimp?
я имею ввиду чтобы в клиенте сделать reference на tlb... можно будет так?
Re[5]: Как вызывать .NET COM-обект из .NET-клиента?
Tom>>tlbimp? А>я имею ввиду чтобы в клиенте сделать reference на tlb... можно будет так?
tlbimp на выходе делает сборку которую и надо будет добавить в референсы.
Re[6]: Как вызывать .NET COM-обект из .NET-клиента?
От:
Аноним
Дата:
05.02.14 08:35
Оценка:
Здравствуйте, Tom, Вы писали:
Tom>>>tlbimp? А>>я имею ввиду чтобы в клиенте сделать reference на tlb... можно будет так? Tom>tlbimp на выходе делает сборку которую и надо будет добавить в референсы.
Tom>http://msdn.microsoft.com/ru-ru/library/tt0cf3sx(v=vs.110).aspx
Visual Studio ругается на такую попытку.
Говорит, что если COM-объект .NET, то надо добавлять по reference DLL.
А этого как раз надо избежать.
Здравствуйте, Аноним, Вы писали:
А>Всем привет!
А>Можно ли использовать COM-объект, написанный на C#, в приложении, написанном на C#, но как COM, а не через reference? А>К примеру, COM-объект написан на .NET 4.0, а приложение на .NET 2.0. А>Спасибо...
Здравствуйте, Аноним, Вы писали:
А>Всем привет!
А>Можно ли использовать COM-объект, написанный на C#, в приложении, написанном на C#, но как COM, а не через reference? А>К примеру, COM-объект написан на .NET 4.0, а приложение на .NET 2.0. А>Спасибо...
Создаешь две DLL
1) Содержит сам COM объект
2) Содержит интерфейс COM объекта
В свое приложение кидаешь в reference только сборку содержащую интерфейс COM объекта. Далее создаешь COM объект:
Если вам не хочется создавать вторую DLL с интерфейсами, то тогда без System.Reflection не обойтись...
Re[2]: Как вызывать .NET COM-обект из .NET-клиента?
От:
Аноним
Дата:
06.02.14 06:06
Оценка:
Здравствуйте, SanyaVB, Вы писали:
SVB>Создаешь две DLL SVB>1) Содержит сам COM объект SVB>2) Содержит интерфейс COM объекта SVB>В свое приложение кидаешь в reference только сборку содержащую интерфейс COM объекта. Далее создаешь COM объект: SVB>
SVB>И приводишь полученный объект к интерфейсу.
я так пробовал, у меня не получилось...
во-первых, надо иметь 2 версии DLL с интерфейсом COM (x86 для COM и AnyCPU для клиента), но это не проблема.
во-вторых, у меня не получилось в tlb COM-объекта прописать интерфейсы из интерфейсной DLL.
причем интерфейсную DLL тоже пришлось делать COM-объектом и регистрировать.
в ответ на CreateInstance пишет, что класс не зарегистрирован.
может, там еще какие-то тонкости есть?
спасибо...