0
我有一个抽象类,并为它执行两个实现。如何在运行时取代统一注入
public abstract class Person{
public abstract string GetName();
}
public class Doctor : Person{
public override string GetName()
{
return "Doctor";
}
}
public class Teacher : Person{
public override string GetName()
{
return "teacher";
}
}
我使用统一进行依赖injection.In统一注册我的医生和在运行时我需要用的老师,居然在我的test2的方法取代注射: 这里是我的统一注射:
container.RegisterType<Person, Doctor>();
这里是我的类的构造函数:
private readonly Iperson _person;
pubice myclass(Iperson person)
{
_person=person
}
public voide test1()
{
var Name=_person.GetName();
// Name is : Doctor
}
public void test2()
{
//????
var Name=_person.GetName();
// Name must be teacher
}
我不是很熟悉的团结,但是你应该有名字将它们注入。在运行时,你可以指定你想要的哪一个,如果你想要两个,那么注册两个。看看这里:https://stackoverflow.com/questions/7046779/with-unity-how-do-i-inject-a-named-dependency-into-a-constructor – FCin