- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我开始在这个相对较小的项目上使用 Ninject,但我遇到了一个问题:我有这个类
class SomeService : ISomeService
这取决于
class BizLogicModule : IBizLogicModule
这又取决于
class DataRepository : IDataRepository
DataRepository
的构造函数如下所示:
DataRepository(BizEntityModel context)
现在,我需要能够跨多个 IDataRepository
实例使用单个 BizEntityModel
实例。
我还需要在IBizLogicModule
的生命周期内创建IDataRepository
。 IBizLogicModule
不知道 Ninject,我想保持这种状态。
所以我的问题是:如何使用 Ninject 内核将所有这些连接起来,同时:
不必绕层传递内核实例。
让代码的可读性接近 Ninject 之前的代码(我刚刚开始使用工厂方法)。
到目前为止,我得到的接线的简单部分是:
Bind<SomeService>().To<ISomeService>();
Bind<BizLogicModule>().To<IBizLogicModule>();
Bind<DataRepository>().To<IDataRepository>();
Bind<BizEntityModel>().To<BizEntityModel>(); //ToSelf()
// .WithConstructorArgument(context => Kernel.Get<BizEntityModel>)
非常感谢您的指导
编辑:感谢您的回答!
这里有一些被请求的更多数据:BizEntityModel
已向 Ninject 注册(代码已更新)。
如果我理解正确:我可以使用“工厂方法”在 IBizLogicModule
中创建 IDataRepository
的实例。但这给我留下了:
1) 我需要将 BizEntityModel
传递给工厂方法,有时是全新的,有时是现有实例。使用工厂方法,每次都会创建一个新的。
2) 这是不是 SomeService
在另一个程序集中的问题,只有它有对 Ninject.dll 的引用?
最佳答案
我像我理解的那样重复这个问题:
每个 BizLogicModule 实例只存在一个 BizEntityModel 实例(它们没有相互引用)
每当 BizLogicModule 创建 DataRepository 时,都会重用此 BizEntityModel
有几个BizLogicModule
如果这是正确的,则 NamedScope 扩展文档中的第二个示例应该适合您。参见 https://github.com/ninject/ninject.extensions.namedscope/wiki/InNamedScope
确保您阅读了此扩展的完整文档:https://github.com/ninject/ninject.extensions.namedscope/wiki
关于c# - 如何将 IoC 容器保持在一个地方,而内部类需要在 bee 构造后创建依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5489489/
我正在尝试运行一个使用 beego 框架的项目。当我尝试运行该项目时,每次都会遇到以下问题。 No command 'bee' found, did you mean: Command 'bel'
还在为自己的英语不好而烦恼吗?还在为自己的表情包不够多不够国际化而烦恼吗?有了这款表情包,不管你走到哪里,都会有很多的小伙伴对你的表情包赞叹不已。当然,小编只是说说别当真。 &nb
将 Android Studio 更新为 Bumble Bee,并希望使用 Network Inspector。响应不再是纯文本。它在北极狐的网络分析器(Android Studio 的早期版本)上运
我编写了下面的代码来获取整数序列作为输入,并根据用户给出的位置号k将它们分成两部分。大于指定数量的数字将添加到一个列表中,其余的添加到另一个列表中。 这里'当我运行程序时变量编号可能尚未初始化显示编译
我们正在尝试将基于 Arduino 的 wifi bee(ATmega 328P)连接到 Cloudant 数据库。 wifi bee 使用 wiwhield 库连接到网络。我们可以使用它来连接到 c
我开始在这个相对较小的项目上使用 Ninject,但我遇到了一个问题:我有这个类 class SomeService : ISomeService 这取决于 class BizLogicModule
我正在尝试使用 ldflags 选项编译 beego: bee pack -v -ba="-ldflags '-s -w'" 然后去提示它: go build -o /var/folders/XXX/
我用 beego 在 golang 中构建了一个基于基本布局的站点,我将我的页面布局拆分为一个名为 views/_layout.tpl 的文件,并从 Controller 中如下引用它。 func (
是的,请注意,我对 Salesforce 非常陌生,所以如果我不清楚或不具体,请理解。 我是 Salesforce 的新人,我需要在 ASP.NET 中制作一个应用程序,帮助客户/用户在 salesf
是否可以防止公共(public)方法在子类中被覆盖? class Parent def some_method #important stuff that should never be
我将此 jQuery 插件与 twitter-typeahead 一起使用: https://maxfavilli.com/jquery-tag-manager 一切都按预期进行,只有一件小事困扰着我
我正在构建 hive 模拟,并使用名为 workerBee 的二维数组。它有以下 6 个字段:beeId、Age、Type(egg = 1、larva = 2、pupa = 3、worker = 4、
我想在应用程序引擎上尝试一种新的 Jvm 语言 (yeti-lang)。 为了实现更快速的开发,有一个 ServletFilter,它在开发模式下监视 Yeti 源目录并在每次更改时自动重新编译 Ye
我为 android 开发了这个应用程序,它通过蓝牙向蓝牙蜜蜂发送 1 和 0 作为其连接的固定设备。它应该控制连接到 UNO 的外部 LED。但是,当我在为 arduino 上传程序后将 ardui
我们如何将 Admob 和 Firebase crashlytics 添加到 Android Studio Bumble Bee 之前的 build.gradle: 是这样的 buildscript
我是一名优秀的程序员,十分优秀!