То, что я пытаюсь сделать, это обернуть декоратор вокруг команды, используя следующий код.
public interface ICommand
{
}
public interface ICommand<T> : ICommand where T : class
{
void Execute(T args);
}
public class TransactionalCommand<T> : ICommand<T>
where T : class
{
private readonly ICommand<T> command;
public TransactionalCommand(ICommand<T> command)
{
this.command = command;
}
public void Execute(T args)
{
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
{
this.command.Execute(args);
scope.Complete();
}
}
}
Вот как я вызываю разрешение, но я только возвращаю свою команду ChangePasswordCommand без декораций. (На самом деле это событие не скомпилируется при второй привязке)
Конечная цель состоит в том, чтобы автоматически регистрировать все мои типы с помощью этого декоратора. Любая помощь будет здорово!
Bind<ChangePasswordCommand>().To<ChangePasswordCommand>()
.WhenInjectedInto<TransactionalCommand<ChangePasswordArgs>>();
Bind<ChangePasswordCommand>().To<TransactionalCommand<ChangePasswordArgs>>()
.InTransientScope();
var command = kernel.Get<ChangePasswordCommand>();