我有一种情况需要确定传递给Ninject中父对象的参数类型。
以下是一个父,一个孩子和一个负责创建所有内容的ParentFactory的示例...
public interface IParentFactory
{
Parent Create(IConfig config);
}
public interface IConfig
{
// ...
}
public class ConfigForChildOfType1 : IConfig
{
// ....
}
public class ConfigForChildOfType2 : IConfig
{
// ....
}
public class Parent
{
public Parent(IChild child)
{
...
}
}
public interface IChild
{
}
public class Child1 : IChild
{
// Some stuff
}
public class Child2 : IChild
{
// Some stuff
}
当绑定以创建Parent时,我已使用ToFactory方法绑定:
Bind<IParentFactory>().ToFactory();
Bind<Parent>().ToSelf();
这使得可以打电话:
var factory = kernel.Get<IParentFactory>();
......来我的工厂。
当我使用工厂时,我可以使用......
var parentInstance = factory.Create(new ConfigForChildOfType1()); // Bad example with "new", but anyway
现在 - 这是我的问题。当工厂创建Parent实例时,使用传递的配置,我希望根据配置类型创建子类型。
那么,我可以在创建IChild时查看调用父构造函数的参数 - 也就是说,我可以看到传递给工厂创建方法的配置类型?