0

私はUnityを使用しており、クラスがあります:

public class A
{
    [Dependency]
    IRepository<User> User { get; set; }
}

また、クラスBがあります:

public class B
{
    public B()
    {
        /* In Ninject I would use */
        /* Global.Inject(this) */
        /* Is it possible to do in Unity? */
    }
}

前もって感謝します!

4

1 に答える 1

2

container.BuildUp()あなたが達成しようとしているものに似ています。ただし、どうしても必要な場合を除き、コンストラクター内でこの機能を使用しないことを強くお勧めします。PageASP.NET Web フォームは、オブジェクトのインスタンス化を自分で制御する方法がなく、フレームワークがスローすることを決定したものを飲み込む必要があるため、私の観点からは理にかなっている唯一のシナリオです。

BuildUp外部フレームワークまたはアプリケーションによって提供される「サードパーティ」オブジェクト用に予約する必要があり (ここでも、オブジェクトのインスタンス化を制御できません)、ビジネス オブジェクトまたはサービス オブジェクト内のコンテナーを直接呼び出すことは絶対にしないでください ( ServiceLocator アンチを参照してください)。 -パターン)。

于 2012-07-09T11:43:19.380 に答える