1

私は次のようなシンプルなインターフェースを持っています:

public interface ICommandHandler<T>
{
    void Handle(T command);
}

次に、そのインターフェイスのいくつかの実装があります。ここに1つの例を示します。

public class RegisterUserCommandHandler : ICommandHandler<RegisterUserCommand>
{
    private readonly IUserRepository _userRepository;

    public RegisterUserCommandHandler(IUserRepository userRepository)
    {
        _userRepository = userRepository;
    }

    public void Handle(RegisterUserCommand command)
    {
        var user = new User(command.UserId, command.Password);
        _userRepository.Add(user);
    }
}

ICommandHandler次のようなインターフェイスの正しい実装を解決できないようにします。

var handler = _kernel.Get<ICommandHandler<T>>();

私の質問はこれです:Ninjectでバインディングを構成するにはどうすればよいですか?

更新 多分私はこれを理解しました、これがNinject.Extensions.Conventionsでの私の解決策です

_kernel.Bind(x => x
                .FromAssemblyContaining<ICommandInvoker>()
                .SelectAllClasses().Excluding<IDocumentSession>()
                .BindAllInterfaces());
4

0 に答える 0