このコードは、NuGetを使用してSQL Server CEのエンティティフレームワークコードファーストを追加した後に生成されました。他のファイルは変更されていません。ファイルSQLCEEntityFramework.cs
が作成され、App_Start
フォルダーに配置されました。
これは、自動的に実行されるなどのことですか? NinjectをMVC 3に追加したときにも同じことが起こりました。コードがglobal.ascx
ファイルに追加されなかったため、プラグアンドプレイか何かを構成する必要があるかわかりません。
[Assembly: WebActivator.PreApplicationStartMethod(typeof(StackTorrents.WebUI.App_Start.SQLCEEntityFramework), "Start")]
による:
http://haacked.com/archive/2010/05/16/three-hidden-extensibility-gems-in-asp-net-4.aspx
この新しい属性を使用すると、アプリケーションの起動時にコードをASP.NETパイプラインの早い段階で実行できます。 Application_Startの前であっても、私は早い方法を意味します。これは、App_codeフォルダー内のコード(そこにコードがある場合)がコンパイルされる前でもあります。この属性を使用するには、クラスライブラリを作成し、この属性をアセンブリレベルの属性として追加します。これを追加する一般的な場所は、Propertiesフォルダー内のAssemblyInfo.csクラスです。
明確にするために、既存のコードファイルを変更せずに、いくつかのアプリケーション開始イベントとアプリケーションシャットダウンイベントにフックする方法を提供します(以前はGlobals.asax.csを編集する必要がありました)。
これらのイベントはHttpモジュールのブートストラップに非常に便利であり、既存のファイルにコードを書き込むことは非常に難しいため、これはほとんどの場合、パッケージを作成するときに大したことです。