问题标签 [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.
structuremap - StructureMap 转发命名实例
我正在使用 StructureMap 4.4.1。在我的代码中,我有 1 个具体类 ,TransactionalDatabaseClient
它实现ITransactionalDatabaseClient
,它继承自IDatabaseClient
。我正在使用该Forward
方法来重定向请求ITransactionalDatabaseClient
以使用基本接口的注册来解析,IDatabaseClient
.
这是我的相关部分Registry
:
问题是,当我请求 的命名实例时ITransactionalDatabaseClient
,StructureMap 抱怨该命名实例不存在。
我究竟做错了什么?有解决方法吗?
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() 轻松完成。所以,我很高兴找到当前的等价物。
c# - 找不到 StructureMap 可插入类型或命名空间
我在我的项目(Asp.net 4.5.1)中使用 Visual Studio 2013。我曾经NuGet
添加StructureMap
到我的项目中。
我的解决方案的结构是:
- MyProjectWeb(首先创建)
- MyProjectCore(在解决方案中添加第二个)
- MyProjectWebTest(添加到解决方案的第三个)
- MyProjectCoreTest(添加到解决方案)
然后,我刚刚添加StructureMap
,在 MyProjectCore 中创建了 Database 文件夹,并在 DataBase 文件夹下创建了 Impt。
此外,我添加了以下类(在代码示例中,这些类似乎在同一个文件中,但实际上它们在不同的文件中)
我得到可怕的类型或命名空间都找不到Pluggable
和PluginFamily
。
我在这里想念什么?
注意:对此进行了大量研究,似乎无法找到明确的解决方案。对于 Clearity,这是一个 webapp 项目,我正在尝试重新创建旧的 webapp 项目以获取和理解底层架构,以便我可以迁移到 MVC 平台。任何帮助将不胜感激提前感谢凯文
c# - 使用结构映射解决对存储库接口 MVC5 的依赖
我有一个从存储库项目中获取数据的映射器。我有一个 IMenuMapper 接口,它像这样传递到 homecontroller 中:
但是 menuemapper 类本身使用IMenueMapperRepository
, 这来自另一个项目并通过 dll 传入
虽然我可以使用 structuremap.mvc5 轻松解析 MVC 项目中的 IMenuemapper,但我无法解析存储库。在这种情况下有没有办法实现 DI?
c# - 如何基于开放的泛型类型解析实例?
目前我正在尝试在结构映射中重新实现一些用 Castle Windsor 编写的代码。
这段代码:
执行以下操作:调用 IMongoCollection 时,解析具体集合。
我试图在结构图中这样做:
但我不知道在魔法部分该怎么做。
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 后有什么办法吗?
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
!!
这里有什么问题?
我应该怎么办?
c# - Structuremap 默认注册表动态值
我正在尝试在运行时将字符串注入结构映射注册表。我已经用一个静态字符串成功地完成了它。像这样
但是当我试图在运行时使字符串动态时,我无法弄清楚如何发送它,我尝试了 HttpContext 和 Session 但它们总是空的,如下例所示:
请问有人知道如何做到这一点吗?
structuremap - 使用 StructureMap DynamicProxyInterceptor 时如何从容器中解析 IInterceptionBehavior 实例?
我正在从 Unity 迁移到 StructureMap。我已经使用了 Unity 的 InterceptionBehavior。
我以为我可以将其切换为使用 StructureMap .InterceptWith
,DynamicProxyInterceptor
但是我的拦截器具有依赖关系,我无法弄清楚如何使用 StructureMap 组合拦截器。
目前我唯一能想到的可能是一个解决方案是从静态 IoC 类中公开我的 IContainer 并在我的拦截器中手动解决我的依赖项。
最终我可能会用装饰器替换我的动态代理,但我还没有到那个阶段。我只是想尽快让它重新启动并运行,这样我就可以在开始进行其他更改之前证明其他更改都是成功的。
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 时才会发生这种情况,我该如何解决?
我正在使用这样的默认配置: