我有一种情况,我需要确定传递给 Ninject 中父对象的参数类型。
这是一个包含 Parent、Child 和 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
}
在绑定创建父级时,我使用了 ToFactory 方法进行了绑定:
Bind<IParentFactory>().ToFactory();
Bind<Parent>().ToSelf();
这使得可以调用:
var factory = kernel.Get<IParentFactory>();
...得到我的工厂。
当我使用工厂时,我可以使用...
var parentInstance = factory.Create(new ConfigForChildOfType1()); // Bad example with "new", but anyway
现在 - 这是我的问题。当工厂使用传递的配置创建父实例时,我希望根据配置的类型创建子实例的类型。
那么,当创建 IChild 时,我可以检查以查看调用父构造函数的参数 - 即我可以查看传递给工厂的 create 方法的配置类型吗?