问题标签 [structuremap4]

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 回答
229 浏览

c# - 在 Application_Start 中初始化 StructureMap 容器,但在 Application_BeginRequest 中为空

在我的 WebApiApplication 中,我试图初始化一个IContainerin Application_Start并将其存储在_container字段中:

调试时,在 的结尾Application_Start()和开头之间的某个位置Application_BeginRequest(),该_container字段变为null.

我在这里做错了什么?

0 投票
1 回答
240 浏览

asp.net-mvc-5 - 在我的 MVC5 控制器中使用 StructureMap[4.7.0] Setter 注入

我正在尝试将IApplicationConfigurationSection实现注入这个 MVC5 Controller,这样我就可以在我web.config的所有视图中从我的自定义部分访问一些信息(各种字符串):

我想使用 setter 注入,这样我就不必将派生的Controller构造函数与他们并不真正关心的参数混在一起。

注意如果有更好的方法来注入基类依赖项,请告诉我。我承认我在这里可能没有走上正轨

在我Global.asax加载我的 StructureMap 配置:

我的StructureMapConfig班级加载我的注册表:

我的 MvcRegistry 提供了 StructureMap 的映射:

我也“举起手来”并尝试使用[SetterProperty]BaseController 上的属性 - 该技术也失败了。


尽管我尽最大努力寻找解决方案,但AppConfig我的控制器构造函数中的属性始终是null. 我以为

会做的伎俩,但它没有。

我发现如果我放弃 setter 注入并使用构造函数注入,它会像宣传的那样工作。我仍然想知道我哪里出错了,但我想强调我不是 StructureMap 大师 -可能有更好的方法来避免构造函数注入我的基类依赖项。如果你知道我应该怎么做,但不是,请分享。

0 投票
1 回答
896 浏览

c# - 错误 CS0832 表达式树可能不包含赋值运算符

最后有什么问题 ForSingletonOf<IScheduler>()...

我收到此错误

错误 CS0832 表达式树可能不包含赋值运算符

0 投票
0 回答
84 浏览

c# - No parameterless constructor defined for this object error after adding code-base EF configuration

After adding code-base configuration class for EF called CustomDbConfiguration I get the 'No parameterless constructor defined for this object' error for my controller called CollectionsController. Once it's removed, everything works fine.

This is my configuration class. It's empty but it doesn't matter in this case.

I'm using StructureMap 4.4.3 as my DI container. This is how controllers registration looks like:


and this is the controller:

I'm aware that there is no parametrlees constructor in my controller code but it worked just fine before adding EF configuration class. If I add the missing constructor, I will get different errors complaining about services which are not initialized. I went through all similar questions on SO but I haven't found any solution for this specific problem.

0 投票
1 回答
176 浏览

c# - 将结构映射注册表添加到 Microsoft.Azure.Functions.Extensions.DependencyInjection

我尝试通过阅读此博客将 DI 应用到 Azure Function 中。Azure Function 中的注入服务属于另一个使用 Structuremap for DI 的项目。我的问题是我无法将 Structuremap 注册表添加到 Azure Function Startup。下面是一个 Startup 类的例子

我尝试编写一个 ContainerConfigurator 类(添加这些注册表)

这是函数类

当我测试端点时,我收到有关解决“IXService”问题的错误消息。我不知道我到底想念什么。有没有人有任何解决方案?

0 投票
2 回答
195 浏览

c# - 我可以覆盖 StructureMap/Autofac 中的列表注册吗?

对于覆盖/替换类型注册,两个框架都使用“最后一次注册获胜”。然而,对于集合(同一接口的多个实现),在两个框架中,集合都被添加到,永远不会完全覆盖/替换为新集合:

我的期望是,当涉及到多个实现(即集合)时,我应该能够使用某些东西来清除或替换父注册,以便我可以在父/全局和子/租户中保留特定服务的单独列表.

(我知道 StructureMap 不再维护,我愿意切换到另一个框架)。

0 投票
0 回答
19 浏览

c# - 获取独特的插件

我使用结构图作为 IOC 容器。我有三个班ABCA具有BC作为构造函数依赖项,并且B具有C作为构造函数依赖项。我用下图来说明:

C 有一个插件列表。我需要,这样的每个实例CPlugIn都是一个新实例。

如何配置结构图?

我已经做了什么?

这是我最小的不工作示例:

这是输出:

如您所见:我有不同的 实例C,但它们共享相同的插件实例。

0 投票
0 回答
17 浏览

entity-framework-6 - 使用 StructureMap 设置实体框架上下文的正确方法

我们使用我不太熟悉的 StructureMap 4.7.1。我们还在 ASP.Net MVC 应用程序中使用 Entity Framework 6。我们的解决方案分为多个项目,例如

一切都使用依赖注入,因此 MVC 控制器从业务层获取服务,该服务从数据层获取存储库,该存储库获取数据上下文实例。我们为 StructureMap 设置了注册表文件,如下所示。

理想情况下,我们希望为每个 http 请求创建一个新的数据上下文实例,我相信它由 HybridHttpOrThreadedLocalScoped 范围控制。但是,它似乎并没有那样工作。如果它是这样工作的,那么我应该能够在请求之间直接对数据库进行更改,并在下一个请求时让它显示数据库中的最新值。但它没有这样做。这就像有一个上下文的单例实例在数据出现缓存时被传递。而且,我可以在请求之间等待很长时间(30 分钟,一个小时),但仍然没有从数据库中获取最新信息。

那么,将其设置为每个 http 请求获取单个实例的正确方法是什么?我已经尝试了以下但仍然没有运气。

0 投票
0 回答
7 浏览

c# - 装饰甚至派生类型或如何拦截对特定方法的所有调用

我想装饰从特定接口派生的所有创建的实例。

我的期望在这个单元测试中实现

但这显然不能完全填充,因为Decorator没有实现IDerivedInterface. 所以我的问题是: 有什么方法可以以这样的方式配置 StructureMap,我可以拦截对 IInterface.Execute 的所有调用?