2011-12-19 11 views
0

Ninjectを初めてインストールしました。私はNinjectMvc3バージョンを使用しています。このバージョンは、Nuget経由でApp_Startフォルダ内のNinjectMvc3クラスを提供します。そこにある私は私のweb.configに持っているエンティティ接続文字列を接続しようとしています RegisterServicesメソッド基本的に私が今持っているのはこれです。NinjectMvc3とのエンティティ接続文字列の設定

var sConnection = ConfigurationManager.ConnectionStrings["dEntities"].ConnectionString; 
     kernel.Bind<IDataContext>().To<DataContext>().WithConstructorArgument("dEntities", new dEntities(sConnection)); 

これは私に次のエラー例外の詳細を与える:と、System.InvalidOperationException:このメソッドは、アプリケーションの開始前の初期段階で呼び出すことはできません。

そしてHERESにソースエラーのいくつか:

/// Initialize a new dEntities object. 
    /// </summary> 
    public dEntities(string connectionString) : base(connectionString, "dEntities") 
    { 
     this.ContextOptions.LazyLoadingEnabled = true; 

私が間違って何をしているのですか?

EDIT: 私は、Entity FrameworkとRepositoryパターンを使用していると付け加えます。私がやりたいことは、何とかweb.configのentitites接続文字列のインスタンスを作成し、それをNinjectMvc3とバインドすることです。誰でも問題についての意見はありますか?

答えて

0

本当にConfigurationManager.ConnectionStrings["dEntities"].ConnectionString;を使用する必要がありますか?私の知る限りでConfigurationManagerがほとんどあるのでちょうど後方互換性のためで左*

あなたは、私がNinjectMVC3がWebActivator依存性がよく覚えている場合var connection = Properties.Settings.Default.dEntities

+0

セットアップが不確かなので、必要ないかもしれません。私がこれを試しているときにあなたが提案した方法は、私はプロパティについての提案を得ていません。 Settings.Default.dEntities?あなたはそれがその名前空間に常駐していますか? – Tim

+0

する必要があります。 MVC3も使用しています。 (Ninjectではなく、Castle Windsorを使用していますが、関連性がないはずです)、ここに私の設定があります:http://i.imgur.com/smXq6.png、ここにコード:http://i.imgur。 com/Myakz.pngなので、ConfigurationManagerと同じです。 –

+0

うーん、私は何の示唆も得られていません。これはNinjectMvc3クラスのRegisterServicesメソッドで行う必要がありますか?ありがとう。 – Tim

0

を使用することを試みることができます。多分それが問題です。

NinjectMV3で提供するのではなく、global.asax App_Startイベントハンドラで実行してください。

+0

うーん。今すぐこの行のNinjectMvc3クラスのStart()メソッドでクラッシュします:bootstrapper.Initialize(CreateKernel);しかし、私はあなたの提案をGoogleに試してみて、他の誰かが同じことを経験しているかどうかを確認します。ありがとう! – Tim

+0

これに関してスレッドが見つかりましたhttp://stackoverflow.com/questions/5910376/ninject-mvc3-bootstrapper-throwing-already-initialized-exception Nugetパッケージを使用していますが、これはおそらく問題ですか? – Tim

関連する問題