问题描述
让我们已经有以下工厂的实现:
interface ISomethingFactory
{
ISomething<T> Create<T>();
}
当尝试满足对ISomething<T>
(意味着我工厂能够处理的任意T
)的任何请求时,我能以某种方式告诉温莎集装箱使用我的工厂吗?
当我使用.Register<ISomething<ConcreteType1>>().UsingFactoryMethod(CreateSomething<ConcreteType1>)
时:
ISomething<T> CreateSomething<T>(IKernel kernel,ComponentModel model,CreationContext context)
{
return somethingFactory.Create<T>();
}
我可以创建所需的内容,但是我需要将T
的每个ISomething<T>
显式注册到容器中(这是非常不希望的)。
- 我不确定如何(以及是否)使用
TypedFactoryFacility
(我仍然需要使用自己的工厂实现,并且可能不需要Windsor的“魔术”,对吧?)。 / li> - 我不确定如何(以及是否)使用工厂方法中可用的
context.RequestedType
,以及如何将运行时Type
转换为所需的通用方法,以及如何注册通用工厂方法:-(
有任何提示吗? 谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)