我在这里有一个关于Castle Windsor的简单问题,我还没有使用它很长时间。我正在尝试注册一个服务并提供一个特定的实例,该实例将是该服务的单例实现。
容器不能尝试创建服务的实现,因为它具有容器无法解析的依赖项。我有一个服务的实例,并希望它成为任何请求该服务的人所使用的唯一实例。但是我似乎运气不太好。
我曾经尝试过使用以下代码,这让我有了一点希望:
container.Register(Component.For<IMyInterface>().Instance(serviceObj));
但是Castle对实例所做的全部工作只是在其上执行.GetType()并注册类型。对服务的请求随后将导致容器尝试创建该类型,并在无法填充依赖项时失败。那么有没有办法做到我想要做的事情呢?如果没有,我将创建某种IServiceProvider,以获取服务的实例,并且不需要填写容器的任何依赖项。但这感觉更像是一个解决方法而不是正确的解决方案。有什么建议吗?谢谢!
container.Register(Component.For<T>().Instance(myT));
。 - eouw0o83hf