我可以像这样向结构图添加一个命名实例:
For<IFoo>().Add<Foo>().Named("FooOne");
然后我可以得到:
ObjectFactory.GetNamedInstance<IFoo>("FooOne");
我可以在运行时通过像这样注册来传递参数:
For<IFoo>().Add<Foo>().Ctor<string>("someParam");
并获得一个这样的实例:
ObjectFactory.With("someParam").EqualTo("blah").GetInstance<IFoo>();
一切都很好。但是我想拥有一个命名实例并为其传递一个参数。所以我这样注册:
For<IFoo>().Add<Foo>().Named("FooOne").Ctor<string>("someParam");
但是我无法弄清楚获取命名实例并在运行时将其传递参数的语法?我正在尝试做类似的事情:
ObjectFactory.With("someParam").EqualTo("blah").GetNamedInstance<IFoo>("FooOne");
但是在添加参数之后,structuremap并没有给我GetNamedInstance的选项。我要去哪里错了?
替代方法建议也将是不错的。本质上,我想做的是为枚举的每个元素注册一个具体类型,并使用枚举项对其进行命名并按名称进行检索。但是我需要能够在运行时将参数传递给构造函数。
提前致谢。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句