#asp.net-core #.net-core #.net-5
#asp.net-core #.net-core #.net-5
Вопрос:
Допустим, у меня есть библиотека классов, которая использует System.IO.StreamWriter
тип в одном из своих классов, и у меня есть netcoreapp3.1
ASP.NET Основное веб-приложение, использующее эту библиотеку. Я хотел бы запустить это веб-приложение в операционных системах Windows, Linux и Mac.
Может ли кто-нибудь объяснить мне, как все работает под капотом, когда я вызываю StreamWriter.WriteAsync
метод, например?
- Перенаправляются ли мои вызовы этого типа метода в «соответствующую» версию среды выполнения? т.е
- В Windows вызов этого метода перенаправляется в среду выполнения .NET Core реализации библиотеки Windows
netstandard
? - В Linux вызов этого метода перенаправляется в среду выполнения .NET Core реализации библиотеки Linux
netstandard
? - В Windows вызов этого метода перенаправляется на полный .Среда выполнения NET Framework (например, 4.7) для реализации библиотеки Windows
netstandard
? Предположим, я также ссылаюсь на эту библиотеку классов из приложения .NET Framework 4.7.
- В Windows вызов этого метода перенаправляется в среду выполнения .NET Core реализации библиотеки Windows
- Будет ли это похоже и в .NET 5? т.е. Если моя библиотека классов построена с использованием
net5.0
и используется.net5.0
ASP.NET веб-приложение и запускается в операционных системах Windows, Linux и Mac, то перенаправляются ли вызовыnet5.0
типа API в реализации отдельных операционных систем?net5.0
Комментарии:
1. Какую версию стандартной библиотеки net вы используете? Из класса StreamWriter этот класс применяется к .net core и Xamarin.Mac, поэтому для вопросов 1 и 2 я думаю, что этот метод (приложение .net core) хорошо работает в Windows и Linux, для вопроса 3, если вы используете .net Framework, поскольку он не является перекрестным.платформа, приложение не будет хорошо работать на других ОС. Для .NET 5 см. .NET 5 и .NET Standard далее в этой статье .
2. Спасибо за ответ @ZhiLv. Я использовал
StreamWriter
его просто в качестве примера, чтобы проиллюстрировать тип, который может варьироваться в зависимости от платформы операционной системы.