构建我们已经打了一个问题,我们想注入的依赖到已通过反射构造一个对象:Ninject注入对象通过反射
Type _type = Type.GetType(className, true, true);
ConstructorInfo _ctor = _type.GetConstructor(new[] { typeof(MyClass) });
IReg _reg = (IReg)_ctor.Invoke(new object[] { _myClass });
注射似乎并没有使用在这里发生的事情财产注入。这不可能吗?我们如何解决这个问题? 谢谢。
这似乎是迄今为止最好的方式。但是,我如何到达我的内核?创建一个新的?它在Web服务应用程序级别实例化(我们使用WCF扩展)。与绑定一起。我们的实例化逻辑在业务逻辑级别(不同的程序集)执行,它不知道它被Web服务使用。 – KirEvse
依赖注入模式是“经典抽象类工厂”+新特性(基于ctor/properties,对象生命周期...的接线依赖性)的泛化。因此它应该像抽象类工厂一样使用:在安装应用程序(例如:* main * function)中,您应该定义“类工厂”并将其作为抽象传递给组件(例如:业务逻辑组件)。在我们的例子中,抽象类工厂是IKernel。如何将内核传递给你的程序集?将每个呼叫的实例传递给需要的业务。或者在您的业务逻辑程序集中为其定义一个单例。 –
你将不得不找出一些方法来获取内核。看看这个问题的遗留系统的一些想法http://stackoverflow.com/q/6562872/154477 – ryber