Nia*_*ton 18 c# dependency-injection castle-windsor inversion-of-control
我有一个关于Castle Windsor的简单问题,我很久没有使用过了.我正在尝试使用特定实例注册服务,该实例将是服务的单例实现.
容器无法尝试创建服务本身的实现,因为它具有容器无法解析的依赖项.我有一个服务实例,我希望它是唯一一个用于请求服务的人的实例.但我似乎很少运气.
我通过使用这段代码暂时提出了希望:
container.Register(Component.For<IMyInterface>().Instance(serviceObj));
Run Code Online (Sandbox Code Playgroud)
但是所有Castle都与实例一起做了一个.GetType()并注册了这个类型.对服务的请求随后将导致容器尝试创建该类型,并在无法填充依赖项时失败.
那么有什么方法可以做我想做的事情吗?如果不是,我将创建某种IServiceProvider来获取服务的实例,并且没有容器的依赖关系来填写.但这比正确的解决方案更像是一种解决方案.
有什么建议?谢谢!
Ger*_*nck 27
尝试在容器的Kernel对象上使用AddComponentInstance方法.我想这就是你需要的.
请注意:此技术现已弃用.使用container.Register(Component.For<T>().Instance(myT));替代(感谢eouw0o83hf)
| 归档时间: |
|
| 查看次数: |
10607 次 |
| 最近记录: |