Как реализовать интерфейс, определенный в сборке.NET Standard 1.5, в проекте, ориентированном на.NET 4.6.2?

У меня есть 2 отдельных проекта, давайте назовем их Альфа и Браво.

Project Alpha нацелен только на среду net462 в своем файле project.json, а проект Bravo - на netstandard1.5. Эти 2 платформы совместимы в соответствии с Microsoft.

Проект Альфа ссылается на сборку проекта Браво. В частности, Alpha необходимо реализовать интерфейс, определенный в Bravo. Давайте назовем этот интерфейс IProblematic. Этот интерфейс в основном работает с заголовками и определяет такие методы

bool DoStuff(List<KeyValuePair<string, IEnumerable<string>>> requestHeaders, List<string> rolesList)

Project Alpha объявляет класс, который реализует этот интерфейс.

public bool DoStuff(List<KeyValuePair<string, IEnumerable<string>>> requestHeaders, List<string> rolesList)  {... }

Все идет нормально. Но во время выполнения я страдаю от таких ошибок, как Unable to load one or more of the requested types, Я считаю, что источником ошибок являются типы Коллекции.

Используя функцию "перейти к определению" в Visual Studio, я вижу, что проект Alpha (проект 462) использует System.Collections.Generic, определенный в .. \ Framework \ v4.0.30319 \ mscorlib.dll, а если я делаю то же самое в Коллекции проекта Bravo, он показывает мне, что он использует System.Collections.Generic, определенный в .. \ netstandard1.3 \ System.Collections.dll.

Таким образом, мой вопрос заключается в том, как заставить проект Alpha использовать правильную сборку Collections при реализации интерфейса netstandard1.5, а не использовать коллекции mscorlib? Разве это не должно быть проблемой, учитывая, что две платформы совместимы?

Спасибо всем заранее!

1 ответ

После некоторого расследования я обнаружил, что проблема возникает, потому что мое приложение net462 (косвенно) зависит от System.Collections.Immutable: "1.3.0 и моя библиотека netstandard1.5 зависит от "NETStandard.Library": "1.6.0", Я создам более сфокусированный поток с большим количеством кода и трассировкой стека. Я прошу прощения за задержку в возвращении.

Другие вопросы по тегам