【问题标题】:LightInject Determine type being resolved?LightInject 确定正在解析的类型?
【发布时间】:2015-03-13 00:37:44
【问题描述】:

我正在考虑从 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) => ??? );

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

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

【问题讨论】:

    标签: light-inject


    【解决方案1】:

    我是 LightInject 的作者。您可以通过 paramInfo.Member.DeclaringType

    获取正在解析的类型

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多