我会在这里做几个假设.
使用Ninject最简单的方法是在Foo.Data中创建一个派生自Ninject的StandardModule的新类:
internal class BarModule : StandardModule {
public override void Load() {
Bind<IBar>()
.To<BarClass>();
}
}
Run Code Online (Sandbox Code Playgroud)
然后,该类为IBar的请求建立绑定到具体的BarClass类.这是您的XML等价物.
下一步是创建Ninject内核(也称为"容器")并向其提供此模块(即此配置).您这样做的地方在很大程度上取决于您正在创建的应用程序类型.一般而言,您通常会在代码的逻辑入口点或"启动"部分配置内核.如果它是一个控制台或Windows桌面应用程序,这可能是main()函数的第一件事.
代码是这样的:
var modules = new IModule[] {
new BarModule()
};
var kernel = new StandardKernel(modules);
Run Code Online (Sandbox Code Playgroud)
此时,当您执行以下操作时:
var barObj = kernel.Get<IBar>()
Run Code Online (Sandbox Code Playgroud)
变量barObj引用了BarClass的实例.
总而言之,我完全不能完全理解你的应用程序的所有细微差别 - 例如程序集是动态加载的,等等.希望这对你有所帮助.
归档时间: |
|
查看次数: |
5834 次 |
最近记录: |