Почему COM-взаимодействие предпочтительнее P / Invoke в .NET?

В нашем проекте мы повторно используем много кода Delphi через COM в нашем приложении asp.net.

Вот так: legacy delphi dll = & gt; Оболочка delphi COM = & gt; .Net interop = & gt; asp.net (mvc)

У нас есть некоторые проблемы, связанные с нарушениями доступа, выгрузкой dll и т. Д. Теперь я перенес некоторые из них, чтобы использовать устаревшую dll напрямую через код P / Invoke.

Когда я смотрю на ресурсы, касающиеся COM и P / Invoke, люди почти всегда советуют использовать COM. Это почему? Не имеет ли P / Invoke следующие преимущества:

checked out code will always use the correct dll‘s instead of the last registered COM Multiple versions can run side by side on the servers (for instance: DEV, TEST and QA) No more COM registrations hassle Much faster than COM communication (articles I read indicate a 30% speed increase)

Ответы на вопрос(1)

Ваш ответ на вопрос