Изначально, когда создаешь проект (а именно Приложение Windows Forms), доступен для редактирования файл Form1.cs. Есть необходимость в создании отдельного кода, который будет иметь связь со всем формами, при этом он должен работать независимо от них, даже при закрытии любой формы, но завершаться при закрытии всех форм.
Каждый проект имеет свою точку входа и WinForms не исключение, помимо одной формы по умолчанию также создается класс Program
и в нем метод static void Main()
- именно с него приложение начинает свою работу, там же вы и увидите открытие окна: Application.Run(new Form1());
Вы можете добавить в этот метод свою логику, какие-то статические публичные свойства и методы в класс Program
и будете иметь доступ к ним из любого места.
Например, пусть у нас есть некий класс Data
, содержащий некие данные, которые могут потребоваться в любом месте приложения, добавим в класс Program
свойство:
public static Data AppData { get; private set; }
и в методе Main()
запишем в это свойство некоторое значение:
[STAThread]
static void Main()
{
AppData = new Data(...);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
Теперь из любого места в приложении мы можем получить эти данные:
var veryImportantData = Program.AppData....;
В ViewModel имеется команда, которая запускает загрузку данных с порта и расшифровку их:
Необходимо экспортировать и импортировать в три формата (xml , json, yml)Как лучше это сделать? Помогите с примером и советом