Подтвердить что ты не робот

Какая точка входа в приложение WPF?

Метод Main - это точка входа в консольное приложение С#. Таким образом, например, если мне нужно запустить некоторые потоки или службы, я сделаю это в рамках метода Main.

Я не вижу метод Main внутри проекта WPF, так что же является точкой входа приложения WPF? Если мне нужно запустить некоторые потоки или службы, где следует написать код для их запуска?

UPDATE: этот ответ обобщает доступные решения, но каковы преимущества и недостатки каждого решения?

4b9b3361

Ответ 1

Ваша основная точка входа является переопределением OnStartup в коде для App.Xaml:

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
        // here you take control
    }
}

Другие интересные объекты могут быть Application.OnActivate() и загруженные и инициализированные события вашего MainWindow.

Если мне нужно запустить некоторые потоки или службы, где следует написать код для их запуска?

В зависимости от того, какие эти потоки/службы нужны и нужны.

Ответ 2

Для отдельного приложения WPF, созданного в Visual Studio с помощью мастера создания проекта, точкой входа для приложения является основная функция, определенная в App.g.cs(сгенерированный код). В проекте по умолчанию это общедоступный метод static void App.Main.

Check this

В общем случае приложение .NET будет использовать в качестве точки входа (первая функция) любой метод с именем Main, который имеет модификаторы public/static access - независимо от того, в каком классе находится Main.

Если ваше приложение имеет более одного класса с общедоступным статическим основным методом, вам нужно указать точку входа в диалоговом окне свойств проекта. В раскрывающемся списке "Объект запуска" выберите класс, который содержит метод Main, который должен быть вызван при запуске.

Ответ 3

Главная для приложения WPF автогенерируется и может быть найдена в одном из файлов .cs, которые поддерживают ваш файл App.xaml. Вы можете развернуть App.xaml → App.xaml.cs → App → Main() в проводнике решений, который доставит вас в исходный файл App.gics, содержащий функцию Main().

Этот файл автогенерируется, поэтому вместо того, чтобы редактировать Main, я бы рекомендовал создать в вашем проекте новый .cs файл, содержащий функцию Main(). Затем вы должны изменить свойства своего проекта, чтобы указать правильный объект запуска. Это делается на вкладке "Приложение" в ваших свойствах проекта. Установите его в класс, который содержит вашу пользовательскую основную функцию.

Скорее всего, вы захотите скопировать содержимое автоматически созданного Main в новый, так как вы хотите, чтобы ваше приложение нормально себя ведет (покажите главное окно и т.д.).

Ответ 4

Точка входа - обычно App.xaml.cs.

Вы хотите избежать размещения кода в идеале. Вместо этого попробуйте создать их в моделях для MVVM. Обычно это сложное место, чтобы найти материал - как ваш вопрос является свидетельством.

Другая альтернатива, загрузите их в класс-помощник, а затем создайте экземпляр этого файла в файле app.xaml.