C# 如何在Windsor中动态命名组件?

C# 如何在Windsor中动态命名组件?,c#,inversion-of-control,castle-windsor,castle,C#,Inversion Of Control,Castle Windsor,Castle,我需要在解析如下调用的方法时动态命名 我的注册: container.Register(Component.For<IWorker>() .ImplementedBy<Worker>() .LifeStyle.Singleton); container.Register(Component.For()) .由()实施 (1,生活方式

我需要在解析如下调用的方法时动态命名

我的注册:

container.Register(Component.For<IWorker>()
                                   .ImplementedBy<Worker>()
                                   .LifeStyle.Singleton);
container.Register(Component.For())
.由()实施
(1,生活方式,单身人士),;
我的示例解析过程:

container.Resolve<IWorker>("Singleton instance 1"); //Singleton instance 1 not defined but it can definable dynamically when Resolve called
container.Resolve<IWorker>("Singleton instance 2");
container.Resolve<IWorker>("Singleton instance 1"); // same instance with first resolved instance
container.Resolve(“单例实例1”)//未定义Singleton实例1,但调用Resolve时可以动态定义它
container.Resolve(“单例实例2”);
container.Resolve(“单例实例1”);//与第一个已解析实例相同的实例

如何在Windsor中动态命名组件?

听起来你需要一种定制的生活方式——就像每个“键”(不管这个键是什么)有一个实例。我会研究这种方法,而不是试图强制一种预定义的生活方式来适应您的场景,或者在组件创建后命名组件。

您能告诉我们您真正想要解决的问题吗?也就是说,是什么让你想要这个?我想创建每个不同命名调用的单例实例,你打算在哪里使用这样的东西?你想用它实现/解决什么?我有一个很大的字符串[]。我需要为数组中的每个项创建一个辅助项(不同的),但它是在我使用它之前创建的。(像单身汉)单身汉就是单身汉。IoC容器不应该管理您的应用程序状态。如果您需要一个组件的多个实例,那么您可能需要依赖下一次使用该特定实例时应该存在的某些状态。尝试使用无状态组件。您可以在需要时(而不是之前)创建它们,并在以后处理它们。