私は次のようなシンプルなインターフェースを持っています:
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());