原始类型和IoC容器

And*_*eas 6 dependency-injection inversion-of-control

在使用IoC容器时如何处理原始类型?

即,你有:

class Pinger {
    private int timeout;
    private string targetMachine;

    public Pinger(int timeout, string targetMachine) {
        this.timeout = timeout;
        this.targetMachine = targetMachine;
    }

    public void CheckPing() {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

你如何获得int和string构造函数参数?

Ger*_*nck 4

为此制作另一个接口。

然后你会得到类似的东西:

public Pinger(IExtraConfiguration extraConfig)
{
   timeout = extraconfig.TimeOut;
   targetmachine = extraconfig.TargetMachine;
}
Run Code Online (Sandbox Code Playgroud)

我不知道其他 IOC 容器,但 Castle Windsor 会自动解析这些额外的构造函数参数。