0

私は Unity にあまり詳しくないということを前置きさせてください。私はそれが依存性注入コンテナであることを理解しており、それが何を意味するのかをある程度理解しています。全体的に Unity を使用するアプリケーションを継承しましたが、正しく実装されているようには見えません。session_start前の開発者は、次global.asaのコードを使用して unity オブジェクトをインスタンス化し、セッション全体で永続化します。

var unity = new UnityManager(new UnityContainer());
Session["UnityManager"] = unity;

私が理解しているように、これは本質的に並行性の問題を引き起こすのではないでしょうか? 団結を正しく実装する方法の例を誰かが提供できますか、またはこれが正しい場合は、なぜそうなのか説明できますか?

4

1 に答える 1

0

mvc を使用している場合は、セッションを削除して、nuget パッケージ マネージャーから unity.mvc3 をインストールするだけです。mvc4 と互換性があり、正しい方法ですべてをセットアップします。既存のマッピングを bootstrapper.cs に入れることができます (自動的にインストールされます)。

基本的に、unity にアクセスするには、global.asax に 1 つの静的変数が必要です。だからあなたはそれらすべてを置き換えることができます

var unitycontainer = Session["UnityManager"];
unitycontainer.resolve<>...

MVCApplication.Container.Resolve<> ..
于 2013-04-06T14:00:17.193 に答える