Как реализовать интерфейс, определенный в сборке.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"
, Я создам более сфокусированный поток с большим количеством кода и трассировкой стека. Я прошу прощения за задержку в возвращении.