2012-01-08 20 views
8

パブリックMainWindow(){}の中にいくつかのコードを入れましたが、私はそれをやろうとすぐに(XAMLのパースエラーをいくつか取得していました。C#アプリケーションの起動時にコードを実行する方法は?

アプリケーションの開始時にコードをすぐに実行する方法はありますか?

私はそれが家に電話して、それを始めるのは大丈夫だと頼んでほしいです。そうでない場合は、アプリを終了します。控えめなコピープロテクションと呼んでください。

+1

あなたはどのような技術について話していますか?ウィンドウズフォーム? asp.net Webフォーム? asp.net mvc? wpf? – balexandre

+0

@balexandre、良い質問です。私の推測/仮定は、使用されるタグと、言及されたXAMLのエラーと異なるコンピュータ上での実行のためにWPFです。 – Lucero

+1

@Lucero、XAMLエラーと 'MainWindow'についての話のため、' wpf'タグが私によって追加されました。 – svick

答えて

19

通常、WPFはMainメソッド(アプリケーションのエントリポイント)を作成します。あなたのオプション

  • Application.Startupイベントのハンドラを作成し、そこでコードを入力します。あるいは、OnStartup()メソッドをオーバーライドすることもできます。
  • これが遅すぎる場合は、Appのパラメータのないコンストラクタにコードを挿入します(おそらく存在しないかもしれませんが、作成することができます)。
  • それでも遅すぎる場合は、独自のMain()メソッドを作成することができます。 There are several ways how to do that。おそらく最も簡単なのは別のクラスに配置し、Visual Studioにプロジェクトのプロパティでこのメソッドを使用するよう指示することです。

一方、あいまいなXAML解析エラーが発生しているとします。たぶんあなたは彼らが何を意味するのか正確に把握する必要がありますか?

0

Window.LoadedイベントはWPFです。

しかし、あなたは(いくつかのリソース消費や一部の事業戦略により)アプリケーションがロードされる前実行許可をチェックしたい場合場合は、最初のmainexeによって起動し、すべてがOK bootstrapper実行している場合は後bootstrapper別の小さなexecutableを使用main exe

+0

'Window.Loaded'は、OPが言った' Window'のコンストラクタの後にも呼び出されます。 – svick

+0

@スヴィック:「遅すぎる」という点は見られない。 OPはアプリが起動するとチェック*を実行したいと言っています。ですから、実際にOPが望んでいるものは、 "Window.Loaded"をキャッチしている "通常の"オプション、または実装がより複雑な 'bootstrapper'を使用しています。 – Tigran

関連する問題