我想配置structuremap以使用工厂类创建服务。工厂本身具有需要填充的依赖性。目前我在我的注册表类中有以下内容:
For<IDoStuffWebService>().Singleton().Use(() =>
new DoStuffWebServiceClientFactory(new ConfigProvider()).Create()
);
我不需要对具体类型DoStuffWebServiceClientFactory进行硬编码并手动填充它的依赖关系,而是希望structmap为我获取它(它实现了IDoStuffWebServiceClientFactory)。看起来IContext可能有所帮助(http://docs.structuremap.net/UsingSessionContext.htm),但我很难弄清楚这是怎么回事。
任何帮助非常感谢。 罗杰。
答案 0 :(得分:6)
要在Use方法中使用structuremap上下文,您可以使用以上下文作为参数的重载方法。
For<IDoStuffWebService>().Singleton().Use(ctx => ctx.GetInstance<IDoStuffWebServiceClientFactory>().Create());