问题标签 [structuremap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
inversion-of-control - StructureMap:具有非字符串构造函数参数的 EqualToAppSetting
给定
什么时候
然后 StructureMap 抛出以下异常
有没有办法将 EqualToAppSetting 与非字符串参数一起使用?
nhibernate - 用 StructureMap 控制 NHibernate ITransaction?
我使用 StructureMap 作为我的 IoC 容器,使用 NHibernate 作为我的 ORM。我在网上找到了一个示例,它显示了如何让 StructureMap 构建 ISessionFactory 和 ISession,因此 Factory 是一个单例,而 Session 是基于 HttpContext 的。这很好用,但后来我开始使用 NH Profiler,它告诉我应该始终明确地使用 Transactions。所以,我想,为什么不让 StructureMap 也为我处理呢?使用下面的代码,我得到了一切正常,除了,我不知道如何/在哪里提交/回滚我的事务。
这是我初始化 StructureMap 的方法:
我所有的存储库如下所示:
存储库中的典型方法如下所示:
我想要做的是让我在一个 HttpContext 中调用的所有方法共享相同的 Session 和 Transaction。这是可能的还是完全错误的,我叫错了树?
提前致谢!
-担
asp.net-mvc - 在 ASP.NET MVC 控制器中注入依赖项的不同方法?
在我在网上看到的大多数示例中,MVC 控制器中的 DI 都是这样完成的
使用了自定义 ControllerFactory,它利用了选择的 DI 框架并注入了存储库。
为什么以上认为优于
这将获得相同的结果,但不需要自定义控制器工厂。
就测试而言,Test App 可以有一个单独的 BootStrapper。这样,当控制器被测试时,他们可以得到假的存储库,当它们被真正使用时,他们会得到真正的存储库。
asp.net-mvc - NHibernate 无法从数据库中获取新数据
我使用 NHibernate 作为我的 ASP.NET MVC 应用程序的数据访问层。我还使用 Structure Map 作为 IoC 容器。我已将 Structre 映射配置为将会话工厂创建为单例并基于每个请求(InstanceScope.Hybrid)创建会话。我能够很好地进行基本的 CRUD 操作。
现在,我有一个每 30 秒运行一次的后台进程,它使用一些存储库(这些存储库又使用会话)。而且这个后台进程由于某种原因无法获取新数据。也许我错过了一件简单的事情。我尝试使用谷歌搜索,但找不到任何有用的东西。如果有人指出我正确的方向,那真的会对我有所帮助。
编辑:
我不确定我是否启用了二级缓存,我是 NHibernate 的新手,我的 hibernate 配置文件粘贴在下面。
我想知道的主要事情是,是否存在已经在使用 NHibernate 的典型 Web 应用程序中使用的设计/设计模式。如果我的数据库设置是从不同的应用程序更新的,那么使用无状态会话会解决问题吗?
structuremap - 结构图 - 我不想使用最贪婪的构造函数!
我正在尝试使用结构图在我的项目中配置 NCommon NHRepository。如何阻止它选择最贪婪的构造函数?
我的结构图配置
干杯杰克
dependency-injection - 使用 StructureMap 时有没有办法检测和调试循环引用?
最近我一直在使用大量的小对象,因为它们更简单,更容易重用。大多数情况下,使用 StructureMap(很棒的工具,顺便说一句)将这些对象相互注入没有任何问题。但偶尔,我搞砸了,我以堆栈溢出异常(tm)为幌子得到了一个很好的循环引用。
因此,除了查看自上次测试运行以来我最近所做的所有更改之外,StructureMap 是否提供任何用于调试循环引用的机制,或者是否有一个简单的工具可以在这种情况下有用?
感谢大家!
structuremap - Structuremap配置:一个对象,多个接口
我有这个类型为“SessionObject”的对象“mySessionObject”。它实现了接口IMessageHandler<MessageA>
和IMessageHandler<MessageB>
. 我应该只拥有这些对象之一,并且它应该贯穿整个 HttpSession。
如何在结构映射中注册它,以便在 HttpSession 的生命周期中的任何时候都可以通过调用来获取它ObjectFactory.GetInstance<IMessageHandler<MessageA>>()
,或者ObjectFactory.GetInstance<IMessageHandler<MessageB>>()
?
.net - 使用 StructureMap 定义默认构造函数,而不提供争论或使用 DefaultConstructor 属性
我已经使用 StructureMap 有一段时间了,但我远非专家。我的问题很简单,我试图通过代码(注册表)配置 SM,以便在创建存储库对象的实例时使用特定的构造函数。
这是我的 2 个构造函数(请注意,它们都不是最贪婪的)。
注意:第一个构造函数采用IDatabase
接口的一个实例,并由基类的 ctor(IDatabaseFactory) 实现调用。
我要做的是将 SM 配置为使用第二个构造函数并提供DatabaseFactory
来自 SM 容器的实例。我不能[DefaultConstructor]
在程序集中使用定义的属性,BusinessUnitRepository
所以这个选项不在讨论范围内。
我的注册表代码
当我运行程序时,SM 在尝试创建BusinessUnitRepository
.
供参考:
- 如果我在 Repository.LinqToSql.BusinessUnitRepository 程序集中引用 StructureMap 并在我的 IDatabaseFactory 构造函数上使用 [DefaultConstructor] 属性,一切都会完美运行。
- 我还确认 StructureMap 确实包含配置的“Repository.LinqToSql.DatabaseFactory”
nhibernate - NHibernate 和结构图
所以我真的很喜欢使用NHibernate,但总是使用 Spring.Net。
我最近遇到了 Jeremy Miller 的 StructureMap,我真的比 Spring.Net 更喜欢它。在他的 StructureMap 网站上,他承诺了一个如何一起使用 NHibernate 和 StructureMap 的示例。不幸的是,他没有时间去做(或者我找不到)。
那么有人有关于如何使用 StructureMap 处理 NHibernate 会话的示例吗?
wpf - MVVM 和 StructureMap 的使用
我的 MVVM 应用程序中有相当多的父详细视图模型。像这样的东西:
等等...
此外,单个视图模型可以出现在多个地方,具体取决于用户是按课程浏览还是按学生浏览等。
每个子视图模型都是由父视图模型创建的,因此许多视图模型需要传入子视图模型的依赖关系。例如 SchoolsViewModel 的构造函数可能是:
现在,使所有这些都易于管理的常用方法是使用 DI 框架(例如 StructureMap)将所有必需的参数传递给视图模型。但是,因为在这种情况下,我的应用程序通常只会创建 SchoolsViewModel,所以用途有限。
我的第一个问题是,在这种情况下,您会让 SchoolsViewModel 将每个依赖项传递给每个子视图模型,还是让每个视图模型使用 ObjectFactory.GetInstance() 来创建子视图模型?也许通过一个工厂类来抽象出对 DI 框架的依赖?
还有一个与此相关的问题:MVVM: locating other ViewModels
编辑:我已经为此开了一个赏金,因为我想要更多的意见。