代码之家  ›  专栏  ›  技术社区  ›  Omar

如何在外部程序集中类型的构造函数注入中使用Ninject

  •  2
  • Omar  · 技术社区  · 14 年前

    Ninject 尼杰特 创建此类型的实例并注入任何构造函数依赖项?

    下面是我如何得到这种类型。

    Assembly myAssembly = Assembly.LoadFrom("MyAssembly.dll");
    Type type = myAssembly.GetType("IMyType");
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   Ruben Bartelink    14 年前

    假设你已经创建了一个 Kernel

    kernel.Get(type)
    

    .... 然后我读到问题。。。。假设我的程序集.dll有IMyType的实现,您需要(在主程序集中):-

    kernel.Load( "MyAssembly.dll")
    

    public class Module : StandardModule
    {
        public override void Load()
        { 
            Bind<IMyType>().To<MyType>();
        }
    }
    

    Assembly.LoadFrom() 为了问这个问题,你可能还处在Ninject的最佳位置。

    同上,如果您确实需要通过 Assembly.GetType() ,您可能应该使用 dynamic 要进行后期绑定,您可能必须这样做(在您知道之前,您应该使用动态语言或托管Scripting语言)