问题标签 [structuremap3]

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 投票
2 回答
3173 浏览

asp.net-web-api - 结构映射无参数构造函数错误

我正在尝试使用 Web API 2 设置结构图版本 3.0.5.0。

我遵循了这个实现:Configuring dependency injection with ASP.NET Web API 2.1

但是,在对我的 ComplexesController 进行获取时出现此错误:

尝试创建类型为“ComplexesController”的控制器时发生错误。确保控制器有一个无参数的公共构造函数。

谁能看到我的结构图配置有什么问题?Create 方法永远不会被调用。

这是我的实现:

这个方法是在我的启动...

..这是控制器:

我的完整创业课程

0 投票
0 回答
177 浏览

c# - 使用 StructureMap 时如何查看控制器构造函数中的错误?

我将 StructureMap 3 与 MVC 5 一起使用。问题是,每当控制器构造函数中发生异常时,我都会得到一个误导性的 StructureMap 错误,而不是实际的错误。

例如,我有以下控制器:

每当我尝试从该控制器访问操作时,我都会收到以下 StructureMap 错误:

当控制器构造函数出现问题时,我该怎么做才能看到实际的异常?

0 投票
1 回答
1172 浏览

c# - Structuremap3 DecorateAllWith

我一直在努力让 DecorateAllWith 处理通用接口。我在这里阅读了一些帖子,他们使用拦截器解决了这个问题,但他们似乎使用的是较旧的结构图版本,它似乎不是一个“干净”的解决方案。

我真的需要一些帮助才能让它与结构图 3 一起使用

我有一个通用存储库,我想用日志记录和缓存来装饰它

我有大约 20 个继承 IEntityRepository 的接口。示例 mu UserRepository

然后我有日志装饰器具体类型,我希望 IEntityRepository 的所有实例都用它来装饰

还是有其他更适合我想要完成的 IoC 容器?

编辑:有没有办法装饰从 IEntityRepository 继承的所有接口

0 投票
1 回答
116 浏览

asp.net-mvc - 无法使用 MVC5 获得结构图

我在 Visual Studio 2013 中创建了一个默认的 MVC5 Web 应用程序,并添加到 NuGet的StructureMap.MVC5包中。

我创建了一个 interfaceITester和一个 implementation Tester,我的控制器操作将 anITester作为参数。

但是当我运行该项目时,我得到了错误Cannot create an instance of an interface

根据这个应该只是工作。如果我明确告诉 structuremap 使用Testerfor ITester(而不是依赖默认约定),我也会得到相同的结果。

我之前将StructureMap.MVC4与 MVC4 Web 应用程序一起使用,没有任何问题。

0 投票
2 回答
509 浏览

c# - 使用 C# StructureMap.Mvc5 时将注入传递到基本控制器的最佳方法是什么?

使用 C# StructureMap.Mvc 时在基本控制器中进行注入的最佳方法是什么?

我可以想到这两种方法,不知道哪个更好。

  1. 从控制器参数到基本控制器参数(很好的方法,但当有许多控制器具有许多要注入的属性时会变得一团糟)
  2. 不要使用子控制器并在基本控制器构造函数中使用 ObjectFactory.CreateInstance() 启动所有注入(代码非常少且易于管理,但当控制器注入可用时不被视为良好做法)

提前致谢。

0 投票
0 回答
319 浏览

.net - 配置 StructureMap 3 注册表的 VerificationException

在未修补的 Windows 2012 数据中心操作系统上将我们的工作应用程序从 StructureMap 2.6.4.1 更新到 StructureMap 3.0.5.130 后,我们在 .NET 4.0 上从 ASP.NET MVC 4.0 应用程序配置 StructureMap 注册表时出现以下异常:

相同的应用程序在 Windows Server 2008 R2 机器上运行良好。显然,这是某种配置问题,可能是 Windows 更新问题,但有人知道要运行哪个 Windows 或 .NET 更新吗?我们无法关闭这台机器,我需要了解缺少的依赖项。

0 投票
1 回答
1055 浏览

dependency-injection - 如何注册为单例或瞬态所有类型都使用 StructureMap 实现一个接口

我有两个接口说明服务必须是单例的还是瞬态的:

我在其他接口和类中实现了这个接口:

然后我在其他服务中注入 Session:

如何配置 StructureMap 以使实现 ISingleton 类型的所有实例请求都必须使用 Singleton 生命周期创建?

我试过了:

但是什么都没有......不工作,创建一个会话对象作为瞬态。

我也试过了:

没事了 ...

我已经看到如何使用温莎城堡做到这一点:

但我不知道如何使用 StructureMap ...

其他可能性是使用约定(IRegistrationConvention),但我不知道该怎么做,例如:

有人可以帮助我吗?

更新

我已经建立了一个约定:

这似乎可行,但它将每个类注册为插件类型,在这种情况下:

会话 => 会话 [单例] BookService => BookService [瞬态]

但是,如果我将 Session 作为 ISession 注入...由于 ISession 未注册而找不到实例...但是我可以使用默认对流...然后工作但将实例检索为瞬态...

调用 WhatDoIHave() 我可以看到它:

我能解决这个吗?

0 投票
2 回答
250 浏览

structuremap - StructureMap 约定 - Registy.AddType 和 Registry.For().Use() 之间的区别

简短的问题。registry.AddType(pluginType, type);和之间存在一些差异registry.For(pluginType).Use(type);

代码:

使用 WhatDoIHave() 我可以看到相同的结果:

使用添加类型:

使用 For().Use():

唯一的区别在于描述...

有人吗?

0 投票
1 回答
85 浏览

asp.net-mvc-5 - PreApplicationStart 中的当前 URL

我正在使用 StructureMap.MVC5,它依赖 PreApplicationStart 方法来注册一个 HttpModule 并初始化 IoC 容器。此时是否可以获取页面正在执行的服务器名称,以便我可以在 IoC 初始化中设置特定于环境的属性?

0 投票
0 回答
302 浏览

c# - WinForms 和 StructureMap 默认生命周期

请考虑以下代码

当我调试上面的代码时,我意识到 (Uow , UserService.Uow , ProductService.Uow ) 对象实例是同一个实例。但是 PerRequest 是 StructureMap 默认的生命周期,那么为什么它们是同一个实例呢?