0

我有一种情况,我需要确定传递给 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 方法的配置类型吗?

4

0 回答 0