Вопрос

Одной из приятных особенностей COM / ActiveX был исполняемый файл вне процесса.У вас мог бы быть EXE-файл, который предоставлял бы методы и свойства в форме, доступной обоим другим процессам, включая VBScript и JScript.В то же время EXE-файл может иметь свою собственную функциональность, связанную или не связанную с той, которая предоставляется его библиотекой типов.

Каков тип файла .ЧИСТЫЙ эквивалент?

У меня есть существующий проект VB6, который является интерпретатором языка сценариев (с использованием MSScript) и ресурсом различных инструментальных функций для других языков сценариев.Было предложено, чтобы я попробовал преобразовать его в файл .NET.

Сработает ли это, или мне в конечном итоге придется разделить один элемент на два?

Это было полезно?

Решение

Корпоративные сервисы позволят вам сделать именно это.Вы можете запустить COM-компонент как:

  • Процесс DLLHost
  • Услуга
  • Библиотека inproc (это тот же процесс, что и ваш другой код)

В Интернете есть множество примеров по этому поводу.К чему это сводится, так это к:

  • Украсьте свои классы, которые вам нужно предоставить COM, интерфейсами
  • Компоненты, которые вы хотите разместить, должны быть получены из ServicedComponent
  • Украсьте свои интерфейсы атрибутом GuidAttribute (используйте уникальный Guid).
  • Украсьте интерфейсы и классы, которые доступны для COM, атрибутом ComVisible (true)

Надеюсь, это поможет.

Другие советы

Соответствие .NET является Удаленное использование .NET для .NET 2.0 и WCF для версии 3.0+.Однако, если вам нужно взаимодействовать с COM-объектами, вы должны вместо этого создать COM-открытый объект.Для этого существует довольно много руководств.

Для этого есть несколько вариантов;наиболее очевидным является обслуживаемые компоненты;это позволяет вам разместить управляемый код в COM +, чтобы запустить его в отдельном процессе, но вам нужен GAC /COM-callable и т.д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top