source

WPF 애플리케이션의 엔트리 포인트는 무엇입니까?

nicesource 2023. 4. 14. 21:54
반응형

WPF 애플리케이션의 엔트리 포인트는 무엇입니까?

Mainmethod는 C# 콘솔애플리케이션의 엔트리 포인트입니다.따라서 예를 들어 몇 가지 스레드 또는 서비스를 시작해야 할 경우 다음 중 하나를 수행합니다.Main방법.

는 표시되지 않습니다.MainWPF 프로젝트 내의 메서드입니다.WPF 어플리케이션의 진입점은 어디입니까?몇 가지 스레드 또는 서비스를 시작해야 할 경우 시작 코드를 어디에 작성해야 합니까?

업데이트:답변에는 사용 가능한 솔루션이 요약되어 있습니다.각 솔루션의 장점과 단점은 무엇입니까?

새 프로젝트 마법사를 사용하여 Visual Studio에서 생성된 WPF 독립 실행형 응용 프로그램의 경우 응용 프로그램의 시작 지점은 App.g.cs(생성 코드)에 정의된 기본 함수입니다.디폴트 프로젝트에서는 퍼블릭 스태틱 보이드 앱입니다.주요 방법

체크해 주세요

일반적으로는 입니다.NET 어플리케이션은 Main이 어떤 클래스에 배치되어 있는지에 관계없이 퍼블릭/스태틱액세스 수식자가 있는 Main이라는 이름의 메서드를 엔트리 포인트(첫 번째 함수 호출)로 사용합니다.

프로그램에 공용 정적 기본 메서드를 사용하는 클래스가 두 개 이상 있는 경우 프로젝트 특성 대화 상자에서 진입점을 지정해야 합니다.시작 개체 드롭다운에서 시작 시 호출해야 하는 기본 메서드가 포함된 클래스를 선택합니다.

주요 엔트리 포인트는 앱의 코드 배후에 있는 OnStartup을 덮어쓰는 것입니다.Xaml:

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

기타 관심 포인트는 Application일 수 있습니다.OnActivate() 및 MainWindow의 Loaded 이벤트 및 Initialized 이벤트.

몇 가지 스레드 또는 서비스를 시작해야 할 경우 시작 코드를 어디에 작성해야 합니까?

이러한 스레드/서비스의 필요와 요구에 따라 달라집니다.

WPF 응용 프로그램의 Main은 자동으로 생성되며 App.xaml 파일을 백업하는 .cs 파일 중 하나에 있습니다.솔루션 탐색기에서 App.xaml -> App.xaml.cs -> App -> Main()을 펼치면 Main() 함수가 포함된 App.g.i.cs 소스 파일이 나타납니다.

이 파일은 자동으로 생성되므로 Main을 편집하는 것이 아니라 Main() 함수를 포함하는 새로운 .cs 파일을 프로젝트에 작성할 것을 권장합니다.그런 다음 프로젝트의 속성을 변경하여 올바른 시작 개체를 지정해야 합니다.이 작업은 프로젝트 속성의 응용 프로그램 탭에서 수행합니다.사용자 정의 기본 함수를 포함하는 클래스로 설정합니다.

응용 프로그램이 정상적으로 동작하도록(메인 창 표시 등) 하기 위해 자동 생성된 기본의 내용을 새 파일에 복사해야 할 수 있습니다.

일반적으로 엔트리 포인트는 App.xaml.cs 입니다.

이상적으로 코드를 삽입하지 않도록 해야 합니다.대신 MVVM용 뷰 모델에서 인스턴스화해 보십시오.당신의 질문이 증명하듯이, 그곳은 전형적으로 물건을 찾기가 까다로운 장소입니다.

또는 도우미 클래스에 로드한 후 app.xaml 파일에서 인스턴스화합니다.

App.xaml.cs 파일에서 컨스트럭터를 선언할 수 있습니다.

public partial class App : Application
{
    public App()
    {
        //initialize your app
    }
}

App.g.i.cs에서는 메인 함수가 선언되어 있으며, 앱 구축이 가장 먼저 이루어집니다.

public static void Main() {
    MyWPF.App app = new MyWPF.App(); //calls your constructor
    app.InitializeComponent();
    app.Run();
}

언급URL : https://stackoverflow.com/questions/25371737/what-is-the-entry-point-of-a-wpf-application

반응형