易于理解我的意思的例子:
public interface IWarrior
{
string GetName();
}
public class HumanWarrior : IWarrior
{
string _name;
public HumanWarrior(string name)
{
_name = name;
}
public string GetName()
{
return _name;
}
}
public class AnimalWarrior : IWarrior
{
string _name;
public AnimalWarrior(string name)
{
_name = name;
}
public string GetName()
{
return "animal" + _name;
}
}
在我的代码中,我将其用作:
...code
string warriorName = "Glark";
WarriorService warriorService = new WarriorService(new HumanWarrior(warriorName));
...code
我知道如果嵌套类的构造函数为空,如何使用Autofac解析IWarrior;但是,如果我需要创建IWarrior的示例,那需要“名称”参数,并且无法在Autofac设置中配置此参数的值,该怎么办?
答案 0 :(得分:0)
我不会那样做,这不是像Autofac这样的IOC容器的重点。
我要做的是创建一个postgres
属性或一个函数public string Name {get; set;}
编辑: 这就是我要构建的方式
public void Init(string name) { ... }
或者类似这样的东西:
public class HumanWarrior : IWarrior
{
public string Name { get; set; }
}
具有这样的界面:
public class HumanWarrior : IWarrior
{
public string Name { get; private set; }
public void Init(string name)
{
Name = name;
}
}