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。
构造函数参数默认实例化,如果可以解析的话。
我正在创建一个项目,我需要在其中使用统一并解析 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。
构造函数参数默认实例化,如果可以解析的话。