我可以像这样在结构图中添加一个命名实例:
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的选项。我哪里错了?
替代方法建议也会很好。基本上我要做的是为枚举的每个元素注册一个具体的类型,并使用枚举项来命名它并按名称检索它。但我需要能够在运行时将参数传递给构造函数。
提前致谢。