问题标签 [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.
structuremap - StructureMap:有没有办法获得一个非静态容器?
我见过的所有 StructureMap 示例都使用静态 ObjectFactory 类来初始化和解析对象。但是,我想传递对我的容器的引用。我假设 ObjectFactory 只是一个非静态对象的单例包装器。但它在哪里?
dependency-injection - StructureMap 拦截器
我有一堆实现各种接口的服务。例如,IAlbumService
等IMediaService
。
我想记录对这些接口上每个方法的调用。如何使用 StructureMap 执行此操作?
我意识到这与这个问题几乎相同,只是我没有使用温莎。
c# - 在 StructureMap 中,如何在运行时更改 InstanceScope?
在我的 DefaultRegistry 我有这个配置:
在 Web 应用程序流程的某个时刻,我想将 InstanceScope 更改为 HttpSession 以获得长时间的对话,所以我这样做:
这似乎取代了最初的 InstanceScope,不幸的是它只持续当前请求。当下一个请求到达时,初始配置再次处于活动状态,会话信息丢失。
后来我还希望能够通过以下方式恢复更改:
但如果我让它在一个方向上工作,它可能会同时在两个方向上工作。
是否可以在运行时永久替换初始 InstanceScope?这应该如何实施?另外,您认为这是获得长时间对话的好方法,还是使用 StructureMap 和 NHibernate 有更好/更简单的方法?
model-view-controller - 我的 MVC 存储库模式和 StructureMap 的问题
我有一个在 ado.net 实体框架之上创建的存储库模式。当我尝试实现 StructureMap 来解耦我的对象时,我不断收到 StackOverflowException(无限循环?)。这是模式的样子:
IEntityRepository where TEntity : class 定义基本的 CRUD 成员
MyEntityRepository : IEntityRepository 实现 CRUD 成员
IEntityService where TEntity : class 定义为每个成员返回公共类型的 CRUD 成员。
MyEntityService : IEntityService 使用存储库检索数据并返回一个通用类型作为结果(IList、bool 等)
问题似乎与我的服务层有关。更具体地说是构造函数。
从控制器中,我传递了一个实现 IValidationDictionary 的对象。我明确地调用第二个构造函数来初始化存储库。
这是控制器构造函数的样子(第一个创建验证对象的实例):
如果我不传递我的 IValidationDictionary 对象引用,一切正常,在这种情况下,第一个控制器构造函数将被删除,并且服务对象将只有一个接受存储库接口作为参数的构造函数。
感谢您对此的任何帮助:) 谢谢。
silverlight - Silverlight 的依赖注入?
我通常使用 StructureMap.dll(来自 MvcContrib)在 .NET 中进行依赖注入。
是否有 Silverlight 的等价物,或者任何人使用的任何工具?很明显,我可以用手来做,而且并不难。但我想知道是否有像 StructureMap 这样形式化的东西,但对于 Silverlight。
model-view-controller - MVC 中的 StructureMap 控制器工厂和空控制器实例
我仍在尝试使用 StructureMap 解决问题,我遇到的问题之一是当将空控制器类型传递给它时,我的 Controller Factory 类爆炸了。这只发生在应用程序第一次构建时,之后每个后续构建都可以正常工作。即使我关闭 Visual Studio 并重新打开项目(我没有在 IIS 中运行它)。几乎就像是在进行某种缓存。这是控制器类的样子:
有什么问题?我需要注册每个控制器吗?谢谢你。
asp.net-mvc - ASP.NET MVC 和 StructureMap 存在问题
我的机器上的 StructureMap 工作正常。一切都很好......直到我请求一个不存在的资源。我得到一个 500 错误,而不是 404。
例如。http://localhost:6969/lkfhklsfhskdfksdf
检查网络,我被告知要修复我的结构图控制器类。做到了,很高兴!我现在得到-原始默认404黄屏页面-。好的,这比我的 500 错误页面要好。
但是,我希望它转到我的自定义 404 页面 :( 如果我在合法控制器上调用错误操作,我会得到我的自定义 404 页面。
在我的 global.asax 中,我有我的自定义路由,然后是默认路由,最后是 404 路由:
这是我的结构图控制器代码:
有任何想法吗?有什么方法可以让结构映射控制器工厂重新回到global.asax
路由列表中?还是我做了一些非常糟糕的事情,需要修复一些其他的东西。
干杯!
unit-testing - 如何使用 StructureMap 2.5.3 自带的 MoqAutoMocker?
我正在尝试使用 StructureMap 附带的 MoqAutoMocker 类,但我找不到任何应该如何使用它的示例。我所要做的就是在 StructureMap 站点上使用 RhinoMocks 的示例。
我想要做的是使用 Get 方法获取对我的自动模拟/注入依赖项之一的引用。根据上面的链接,我应该能够做这样的事情
请注意如何使用 AssertWasCalled,它指示 Get 函数返回对 RhinoMocks Mock 对象的引用?当我使用 MoqAutoMocker 时,同样的代码对我不起作用。
我有一个类 SignInController,它依赖于构造函数中的 ISecurityService。使用 MoqAutoMocker 就像示例中使用的 RhinoAutoMocker 一样,我想我应该能够做到这一点......
但问题是我永远无法访问 Setup 方法。在这种情况下,对 autoMocker.Get 的调用似乎返回了 ISecurityService 的实例,而不是 Mock<ISecurityService>
有没有人以这种方式成功使用 MoqAutoMocker?我只是做错了吗?
asp.net-mvc - 使用依赖注入组织 ASP.Net MVC 解决方案的最佳方法是什么?
我正在开发一个新的 ASP.Net MVC 项目,我正在使用这个项目进入 DI。我很确定我将使用结构图,但这不是我要问的。我想弄清楚的是如何最好地组织我的解决方案。单元测试项目和模型是否都获得了一个配置文件来映射它们的依赖关系,或者是否有一个类来统治它们?
另外,在我深入这个之前,是否有任何新手陷阱需要避免?
非常感谢,所有......
更新 我应该补充一点,当我说“组织解决方案”时,我指的不是文件/文件夹的数量等,而是如何构造与 DI 相关的类。特别是如何管理引导程序。我可以看到我糟糕的措辞可能会导致混乱。
singleton - 如何将 Structuremap 配置为通过 Singleton 在 Assembly 和 Cache 中自动扫描类型?
我正在使用 mvc.net 和 StructureMap 为我扫描和注册所有存储库和服务。现在我想通过 Singleton 注册和缓存。我能怎么做?