Внедрение инжектора зависимости с помощью инъекции зависимости

Довольно плохо знаком с внедрением зависимости, и яЯ пытаюсь выяснить, если это анти-шаблон.

Позволять'скажем у меня есть 3 сборки:

Foo.Shared - this has all the interfaces
Foo.Users - references Foo.Shared
Foo.Payment - references Foo.Shared

Foo.Users нужен объект, который встроен в Foo.Payment, а Foo.Payment также нужны вещи из Foo.Users. Это создает некую круговую зависимость.

Я определил интерфейс в Foo.Shared, который проксирует инфраструктуру Dependency Injection I 'используя (в этом случае NInject).

public interface IDependencyResolver
{
    T Get();
}

В приложении контейнера у меня есть реализация этого интерфейса:

public class DependencyResolver:IDependencyResolver
{
    private readonly IKernel _kernel;

    public DependencyResolver(IKernel kernel)
    {
        _kernel = kernel;
    }

    public T Get()
    {
        return _kernel.Get();
    }
}

Конфигурация выглядит так:

public class MyModule:StandardModule
{
    public override void Load()
    {
        Bind().To().WithArgument("kernel", Kernel);
        Bind().To(); // 

Ответы на вопрос(3)

Ваш ответ на вопрос