问题标签 [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.

0 投票
1 回答
590 浏览

inversion-of-control - StructureMap:具有非字符串构造函数参数的 EqualToAppSetting

给定

什么时候

然后 StructureMap 抛出以下异常

有没有办法将 EqualToAppSetting 与非字符串参数一起使用?

0 投票
1 回答
1405 浏览

nhibernate - 用 StructureMap 控制 NHibernate ITransaction?

我使用 StructureMap 作为我的 IoC 容器,使用 NHibernate 作为我的 ORM。我在网上找到了一个示例,它显示了如何让 StructureMap 构建 ISessionFactory 和 ISession,因此 Factory 是一个单例,而 Session 是基于 HttpContext 的。这很好用,但后来我开始使用 NH Profiler,它告诉我应该始终明确地使用 Transactions。所以,我想,为什么不让 StructureMap 也为我处理呢?使用下面的代码,我得到了一切正常,除了,我不知道如何/在哪里提交/回滚我的事务。

这是我初始化 StructureMap 的方法:

我所有的存储库如下所示:

存储库中的典型方法如下所示:

我想要做的是让我在一个 HttpContext 中调用的所有方法共享相同的 Session 和 Transaction。这是可能的还是完全错误的,我叫错了树?

提前致谢!

-担

0 投票
3 回答
486 浏览

asp.net-mvc - 在 ASP.NET MVC 控制器中注入依赖项的不同方法?

在我在网上看到的大多数示例中,MVC 控制器中的 DI 都是这样完成的

使用了自定义 ControllerFactory,它利用了选择的 DI 框架并注入了存储库。

为什么以上认为优于

这将获得相同的结果,但不需要自定义控制器工厂。

就测试而言,Test App 可以有一个单独的 BootStrapper。这样,当控制器被测试时,他们可以得到假的存储库,当它们被真正使用时,他们会得到真正的存储库。

0 投票
3 回答
180 浏览

asp.net-mvc - NHibernate 无法从数据库中获取新数据

我使用 NHibernate 作为我的 ASP.NET MVC 应用程序的数据访问层。我还使用 Structure Map 作为 IoC 容器。我已将 Structre 映射配置为将会话工厂创建为单例并基于每个请求(InstanceScope.Hybrid)创建会话。我能够很好地进行基本的 CRUD 操作。

现在,我有一个每 30 秒运行一次的后台进程,它使用一些存储库(这些存储库又使用会话)。而且这个后台进程由于某种原因无法获取新数据。也许我错过了一件简单的事情。我尝试使用谷歌搜索,但找不到任何有用的东西。如果有人指出我正确的方向,那真的会对我有所帮助。

编辑:

我不确定我是否启用了二级缓存,我是 NHibernate 的新手,我的 hibernate 配置文件粘贴在下面。

我想知道的主要事情是,是否存在已经在使用 NHibernate 的典型 Web 应用程序中使用的设计/设计模式。如果我的数据库设置是从不同的应用程序更新的,那么使用无状态会话会解决问题吗?

0 投票
2 回答
1014 浏览

structuremap - 结构图 - 我不想使用最贪婪的构造函数!

我正在尝试使用结构图在我的项目中配置 NCommon NHRepository。如何阻止它选择最贪婪的构造函数?

我的结构图配置

干杯杰克

0 投票
1 回答
783 浏览

dependency-injection - 使用 StructureMap 时有没有办法检测和调试循环引用?

最近我一直在使用大量的小对象,因为它们更简单,更容易重用。大多数情况下,使用 StructureMap(很棒的工具,顺便说一句)将这些对象相互注入没有任何问题。但偶尔,我搞砸了,我以堆栈溢出异常(tm)为幌子得到了一个很好的循环引用。

因此,除了查看自上次测试运行以来我最近所做的所有更改之外,StructureMap 是否提供任何用于调试循环引用的机制,或者是否有一个简单的工具可以在这种情况下有用?

感谢大家!

0 投票
1 回答
600 浏览

structuremap - Structuremap配置:一个对象,多个接口

我有这个类型为“SessionObject”的对象“mySessionObject”。它实现了接口IMessageHandler<MessageA>IMessageHandler<MessageB>. 我应该只拥有这些对象之一,并且它应该贯穿整个 HttpSession。

如何在结构映射中注册它,以便在 HttpSession 的生命周期中的任何时候都可以通过调用来获取它ObjectFactory.GetInstance<IMessageHandler<MessageA>>(),或者ObjectFactory.GetInstance<IMessageHandler<MessageB>>()

0 投票
1 回答
1357 浏览

.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”
0 投票
3 回答
6339 浏览

nhibernate - NHibernate 和结构图

所以我真的很喜欢使用NHibernate,但总是使用 Spring.Net。

我最近遇到了 Jeremy Miller 的 StructureMap,我真的比 Spring.Net 更喜欢它。在他的 StructureMap 网站上,他承诺了一个如何一起使用 NHibernate 和 StructureMap 的示例。不幸的是,他没有时间去做(或者我找不到)。

那么有人有关于如何使用 StructureMap 处理 NHibernate 会话的示例吗?

0 投票
3 回答
1730 浏览

wpf - MVVM 和 StructureMap 的使用

我的 MVVM 应用程序中有相当多的父详细视图模型。像这样的东西:

等等...

此外,单个视图模型可以出现在多个地方,具体取决于用户是按课程浏览还是按学生浏览等。

每个子视图模型都是由父视图模型创建的,因此许多视图模型需要传入子视图模型的依赖关系。例如 SchoolsViewModel 的构造函数可能是:

现在,使所有这些都易于管理的常用方法是使用 DI 框架(例如 StructureMap)将所有必需的参数传递给视图模型。但是,因为在这种情况下,我的应用程序通常只会创建 SchoolsViewModel,所以用途有限。

我的第一个问题是,在这种情况下,您会让 SchoolsViewModel 将每个依赖项传递给每个子视图模型,还是让每个视图模型使用 ObjectFactory.GetInstance() 来创建子视图模型?也许通过一个工厂类来抽象出对 DI 框架的依赖?

还有一个与此相关的问题:MVVM: locating other ViewModels

编辑:我已经为此开了一个赏金,因为我想要更多的意见。