C# Unity我们如何resolve/instantiateclass进行多级class方法调用

C# Unity how do we resolve/instantiate class for multi level class method calls

我正在创建一个项目,我需要在其中使用统一并解析 class 个实例,下面是我的 classes 的示例:

class A
{
    public B BInstance { get; set; }

    public A()
    {
        BInstance = new B(??How do I instantiate  using unity ??);
    }

    void M3()
    {
        BInstance.M2();
    }
}

class B
{
    public C CInstance { get; set; }
    public B(C cInstance)//??How do I instantiate  using unity ??
    {
        CInstance = cInstance;
    }

    public void M2()
    {
        CInstance.M1();
    }
}

class C
{
    public D DInsatnce { get; set; }

    public C(D dInstance)//??How do I instantiate  using unity ??
    {
        DInsatnce = dInstance;
    }

    public void M1()
    {
        DInsatnce.MTest();
    }
}

class D
{
    public void MTest()
    {

    }
}

我不想在每个 class (A, B C, D) 下调用 Unity Resolve,我 can/want 只在最终父 class(A ).我也不觉得从 class A 传递 D、C 的实例是好的。

所以我正在寻找实例化 classes C,D 的最佳方法,然后可以通过调用者的构造函数传递。

非常感谢!!!

这里您只需要用 [Dependency] 属性标记 class A 的 BInstance 属性 并用 new UnityContainer().Resolve<A>() 实例化 A。 构造函数参数默认实例化,如果可以解析的话。