光注入 确定正在解析的类型

  • 本文关键字:类型 注入 light-inject
  • 更新时间 :
  • 英文 :


我正在考虑从Ninject转向更轻量级(更快)的Ioc框架。

我拿起LightInject并正在玩,但找不到如何执行以下操作:

在对 RegisterConstructorDependency 的调用中,我希望能够确定要解析的对象的类型。参数信息为我提供了我需要了解的有关参数位置的所有信息。但我无法确定注射的目标。

尝试将字符串值注入构造函数时,这是有问题的。

举个例子:

public interface IService { void Go(); }
public class Impl1 : IService { 
  public Impl1(string needsA){ }
  public void Go(){ }
}
public class Impl2 : IService {
   public Impl1(string needsA, string needsB){ }
  public void Go(){ }
}
// Elsewhere
container.Register<IService, Impl1>();
container.Register<IService, Impl2>();
container.RegisterConstructorDependency<string>((factory, paramInfo) => ??? );

如何在构造函数参数的注册中确定正在解析的实现(Impl1 或 Impl2)。它们可能需要将不同的值传递给"needsA"。

可能是LightInject无法提供此信息,我需要扩展搜索范围。

我是LightInject的作者。您可以通过 paramInfo.Member.DeclaringType 访问正在解析的类型

相关内容

  • 没有找到相关文章

最新更新