UsingFactoryMethod中的温莎泛型

问题描述

让我们已经有以下工厂的实现:

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 (将#修改为@)