C# 使用Windsor Castle容器时如何获取依赖项所有者的类型?

C# 使用Windsor Castle容器时如何获取依赖项所有者的类型?,c#,dependency-injection,castle-windsor,C#,Dependency Injection,Castle Windsor,假设我们有多个服务,每个服务都使用iLogger工厂接口创建自己的记录器实例: public class Foo { private readonly ILogger _logger; public Foo(ILoggerFactory logger) { _logger = loggerFactory.CreateForContext(this.GetType()); } } 也考虑使用温莎城堡进行依赖注入,所以我们有这样的注册: conta

假设我们有多个服务,每个服务都使用iLogger工厂接口创建自己的记录器实例:

public class Foo
{
    private readonly ILogger _logger;

    public Foo(ILoggerFactory logger)
    {
        _logger = loggerFactory.CreateForContext(this.GetType());
    }
}

也考虑使用温莎城堡进行依赖注入,所以我们有这样的注册:

container.Register(Component
    .For<ILoggerFactory>()
    .LifestyleSingleton()
    .Instance(new LoggerFactory());
container.Register(Component
    .For<ILogger>()
    .LifestyleTransient()
    .UsingFactoryMethod((kernel,model,context) => 
        kernel.Resolve<ILoggerFactory>().CreateForContext(????));
但有一个问题——我找不到如何获取依赖项所有者的类型。 有没有办法得到它,或者用另一种方法做同样的事情

更新
我实现了ISubDependencyResolver,但它不适用于后期绑定组件。因此,例如,如果您通过使用FactoryMethod使用大量注册,这并不是一个很好的解决方案。

相关:看看
isubdependencysolver
的概念。我认为您需要构建自己的子依赖解析程序。
public class Foo
{
    private readonly ILogger _logger;

    public Foo(ILogger logger)
    {
        _logger = logger;
    }
}