问题标签 [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 回答
120 浏览

structuremap - StructureMap 转发命名实例

我正在使用 StructureMap 4.4.1。在我的代码中,我有 1 个具体类 ,TransactionalDatabaseClient它实现ITransactionalDatabaseClient,它继承自IDatabaseClient。我正在使用该Forward方法来重定向请求ITransactionalDatabaseClient以使用基本接口的注册来解析,IDatabaseClient.

这是我的相关部分Registry

问题是,当我请求 的命名实例时ITransactionalDatabaseClient,StructureMap 抱怨该命名实例不存在。

我究竟做错了什么?有解决方法吗?

0 投票
0 回答
472 浏览

dependency-injection - 如何使用结构图 4.4 在集成测试类中获取服务实例

使用 asp.net core(1.1) 和 structuremap (v4.4),我想获取我的 dbContext 实例(插入种子数据等)

如何获取我的 dbContext 实例?我看到正常的方法是注入IContainer container到类构造函数中,但是在我的集成测试类中,构造函数将在容器初始化之前解析,(因为在我的测试设置中我调用了启动类:

以及在 statup 类中初始化的容器。( var container = new Container();)

现在我想在我的测试中做类似的事情AbContext.Accounts.Add(new Account());如何获取 Abcontext 的实例?

我认为使用已弃用的静态 objectFactory - 可以通过 objectFactory.Container.GetInstanse() 轻松完成。所以,我很高兴找到当前的等价物。

0 投票
1 回答
563 浏览

c# - 找不到 StructureMap 可插入类型或命名空间

我在我的项目(Asp.net 4.5.1)中使用 Visual Studio 2013。我曾经NuGet添加StructureMap到我的项目中。

我的解决方案的结构是:

  1. MyProjectWeb(首先创建)
  2. MyProjectCore(在解决方案中添加第二个)
  3. MyProjectWebTest(添加到解决方案的第三个)
  4. MyProjectCoreTest(添加到解决方案)

然后,我刚刚添加StructureMap,在 MyProjectCore 中创建了 Database 文件夹,并在 DataBase 文件夹下创建了 Impt。

此外,我添加了以下类(在代码示例中,这些类似乎在同一个文件中,但实际上它们在不同的文件中)

我得到可怕的类型或命名空间都找不到PluggablePluginFamily

我在这里想念什么?

注意:对此进行了大量研究,似乎无法找到明确的解决方案。对于 Clearity,这是一个 webapp 项目,我正在尝试重新创建旧的 webapp 项目以获取和理解底层架构,以便我可以迁移到 MVC 平台。任何帮助将不胜感激提前感谢凯文

0 投票
1 回答
124 浏览

c# - 使用结构映射解决对存储库接口 MVC5 的依赖

我有一个从存储库项目中获取数据的映射器。我有一个 IMenuMapper 接口,它像这样传递到 homecontroller 中:

但是 menuemapper 类本身使用IMenueMapperRepository, 这来自另一个项目并通过 dll 传入

虽然我可以使用 structuremap.mvc5 轻松解析 MVC 项目中的 IMenuemapper,但我无法解析存储库。在这种情况下有没有办法实现 DI?

0 投票
0 回答
77 浏览

c# - 如何基于开放的泛型类型解析实例?

目前我正在尝试在结构映射中重新实现一些用 Castle Windsor 编写的代码。

这段代码:

执行以下操作:调用 IMongoCollection 时,解析具体集合。

我试图在结构图中这样做:

但我不知道在魔法部分该怎么做。

0 投票
1 回答
387 浏览

c# - 通过 ConstructServicesUsing 引导 AutoMapper 和 StructureMap

如何告诉 AutoMapper 5 使用 StructureMap 构建服务而不产生引导问题,即new MapperConfiguration(cfg => cfg.ConstructServicesUsing(some_IContainer))当通过 StructureMap 进行配置时?

自定义解析器需要 AutoMapper 使用的服务定位器,但IContainer在 AutoMapper 在 StructureMap 注册表中初始化时还不存在。静态ObjectFactory.Container在 StructureMap 中已被弃用,所以我有一个惰性 ObjectFactory:

我无法ObjectFactory.Container从 AutoMapper 配置文件中引用,因为我得到堆栈溢出或“在惰性工厂中引用的值”。

.ConstructUsing(some_IContainer)配置 AutoMapper 后有什么办法吗?

0 投票
0 回答
511 浏览

c# - Structuremap V4.4.2 根据请求创建 EntityFramework DbContext

我有一个带有实体框架的ASP.Net MVC 应用程序。我使用Structuremap V4.4 作为 IoC 容器工具

我想在每个请求中创建一个 DbContext 实例。

我的配置如下:

我到处都这样使用它:

但是,when I profile the project with EFProfiler, it is not One DbContext!!

这里有什么问题?

我应该怎么办?

0 投票
1 回答
193 浏览

c# - Structuremap 默认注册表动态值

我正在尝试在运行时将字符串注入结构映射注册表。我已经用一个静态字符串成功地完成了它。像这样

但是当我试图在运行时使字符串动态时,我无法弄清楚如何发送它,我尝试了 HttpContext 和 Session 但它们总是空的,如下例所示:

请问有人知道如何做到这一点吗?

0 投票
1 回答
211 浏览

structuremap - 使用 StructureMap DynamicProxyInterceptor 时如何从容器中解析 IInterceptionBehavior 实例?

我正在从 Unity 迁移到 StructureMap。我已经使用了 Unity 的 InterceptionBehavior。

我以为我可以将其切换为使用 StructureMap .InterceptWithDynamicProxyInterceptor但是我的拦截器具有依赖关系,我无法弄清楚如何使用 StructureMap 组合拦截器。

目前我唯一能想到的可能是一个解决方案是从静态 IoC 类中公开我的 IContainer 并在我的拦截器中手动解决我的依赖项。

最终我可能会用装饰器替换我的动态代理,但我还没有到那个阶段。我只是想尽快让它重新启动并运行,这样我就可以在开始进行其他更改之前证明其他更改都是成功的。

0 投票
0 回答
228 浏览

c# - StructureMap 在另一个命名空间中查找接口实现

我在 asp.net mvc 5 应用程序中使用 StructureMap,我有很多服务,并且对于每个服务我都有一个接口和一个类,例如我有一个 IUserService 和一个 UserService,这些接口位于不同的命名空间中与实际的服务类相比,接口位于命名空间“Services.Interfaces”中,服务类位于命名空间“Services”中,StructureMap 可以很好地找到接口的服务,但是当我想通过使用显式获取实例时

var container = Ioc.Initialize(); var userService = container.GetInstance<IUserService>();

我收到错误消息“未注册默认实例,无法自动确定类型“Services.Interfaces.IUserService”

为什么只有在调用 GetInstance 时才会发生这种情况,我该如何解决?

我正在使用这样的默认配置: