Как использовать специфические для ОС процедуры в программе .NET Core 2? - PullRequest
0 голосов
/ 11 ноября 2019

Мне действительно интересно использовать .NET Core 2.x для написания многоплатформенных программ на C #. Я уже в эксперименте, где я наблюдаю и контролирую процессы, используя System.Diagnostics.Process .

Тем не менее, я считаю, что я уже работаю над критическим вариантом использования, так как может просто требовать системных процедур, которые .NET Core все еще не может предоставить разработчику. Это все еще проблема без какого-либо практического случая, но я думаю о таких задачах, как:

  • Получение количества физических + логических процессоров (в Windows следует использовать WMI , что я не верю, что в .NET Core можно сделать то же самое в MacOS / Linux).
  • Создание дампа памяти сбойного процесса (могут потребоваться вызовы, специфичные для ОС?)
  • В общем, все, что обычно выполняется вызовами C ++, которые являются родными для конкретной ОС

Так что мне интересно, как подойти к этим "будущим" проблемам. .NET Core / C # по-прежнему является правильным решением для моих нужд? Или есть способ вызвать специфичные для ОС вызовы в проекте .NET Core 2.x?

Примечание: по внешним причинам в настоящее время я ограничен использованием ветви .NET Core 2.x, а не 3.x.

1 Ответ

1 голос
/ 11 ноября 2019

Пока вы не планируете использовать какие-либо среды MS GUI (Windows Forms, WPF, UWP), .NET Core может быть гибким и жизнеспособным вариантом на платформах, отличных от Windows.

Можно использовать p / invoke для получения доступа к собственным методам, которые должны работать с .NET Core, работающим и на Unix-подобных системах , хотя на каждой из них будут доступны только системные библиотеки. OS.

RuntimeInformation.IsOSPlatform и условные символы компиляции также можно использовать для ветвления кода для конкретных ОС.

Другие ужеполучить ответ о том, как получить дамп из приложения .NET Core.

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