Как сделать перенаправление привязки для управляемого сервера компонентов COM \ marshalling - PullRequest
0 голосов
/ 03 декабря 2018

Есть управляемый сервер компонентов COM и клиентское приложение (оба написаны на C #).Оба ссылаются на сборку System.Net.Http версии 4.2.0.

Когда COM-компонент создается в клиентском приложении (с помощью функции CoCreateInstance из ole32.dll) и функция из этого экземпляра называется Iошибка при попытке привести объект, возвращенный к типу из System.Net.Http версии 4.0.0.

Как в соответствии с окном модулей для клиентского приложения (с указанием пути к загруженной dll, который я открываю с помощью ildasm для просмотра версии), которыйзагружает System.Net.Http of 4.2.0 и ошибка

{"Неверный код состояния HTTP": "[A] System.Net.Http.Headers.MediaTypeHeaderValue нельзя преобразовать в [B] System.Net.Http.Headers..MediaTypeHeaderValue. Тип A происходит от «System.Net.Http, версия = 4.2.0.0, Culture = нейтральный, PublicKeyToken = b03f5f7f11d50a3a» в контексте «LoadFrom» в расположении «E: \ hws \ src \ Tools \ VirtualPeripherals \ ClientBrokerProxy».bin \ Debug \ net461 \ System.Net.Http.dll ". Тип B происходит от" System.Net.Http, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a "в контексте" по умолчанию "в расположении'C: \ windows \ Microsoft.Net \ assembly \ GAC_MSIL \ System.Net.Http \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ System.Net.Http.dll'. "}

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

  • Как указать, какую сборку (System.Net.Http 4.2.0) необходимо использовать во время маршаллинга?
  • Если это невозможно, как я могу выразить для сервера компонентов COM, что ему нужно использовать перенаправление привязки (к System.Net.Http 4.0.0)?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...