Создание экземпляров. NET классов Framework, использующих API Framework (например, System.Web) в. NET стандартных библиотеках (потенциально вызываемых из. Net Core) - PullRequest
3 голосов
/ 26 мая 2020

У меня большое количество. NET приложений Framework 4.8. Они широко используют System.Web, который является только API фреймворка. Чтобы упростить переход на. NET Core /.NET 5+, я хотел бы извлечь некоторые функции кода фреймворка в. NET стандартные библиотеки.

Это создаст ситуацию где мои новые базовые приложения вызывают стандартные библиотеки, которые могут ссылаться на код приложения фреймворка для выполнения своей работы, пока этот код еще не обновлен. Это вообще возможно? Могут ли стандартные библиотеки создавать экземпляры классов фреймворков, которые используют только API фреймворка, такие как system.web?

В моей текущей ситуации у меня есть 3 класса в трех отдельных проектах в 2 решениях.

Solution A
    StandardClass (.NET Standard 2.0)
    TestClass (.NET Core 3.1, MSTest)
Solution B
    FrameworkClass (.NET Framework 4.8)

Solution B строится в dll, на которую ссылается Solution A. My TestClass создает экземпляр StandardClass и вызывает StandardClass.Foo().

StandardClass имеет свойство _frameworkClass типа FrameworkClass, инициализированное в конструкторе StandardClass.

StandardClass.Foo() вызывает _frameworkClass.Bar() и возвращает строку, но Bar() использует System.Web.HttpContext на протяжении всех своих процессов, среди других классов System.Web. Поэтому, когда срабатывает StandardClass.Foo(), я получаю сообщение об ошибке: System.Web.HttpContext cannot be loaded from System.Web

Я полагал, что, пока StandardClass не знает, какие классы FrameworkClass использует для выполнения своей работы, тогда это будет отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...