我在设置命令处理架构时遇到了一些问题.我希望能够创建从ICommand派生的许多不同的命令; 然后,创建一些从ICommandHandler派生的不同命令处理程序;
这是我开始定义的接口和类:
interface ICommand {}
class CreateItemCommand : ICommand {}
interface ICommandHandler<TCommand> where TCommand : ICommand {
void Handle(TCommand command);
}
class CreateItemCommandHandler : ICommandHandler<CreateItemCommand> {
public void Handle(CreateItemCommand command) {
// Handle the command here
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个辅助类,可以创建适当的命令类型:
class CommandResolver {
ICommand GetCommand(Message message) {
return new CreateItemCommand(); // Handle other commands here
}
}
Run Code Online (Sandbox Code Playgroud)
并且,一个帮助类创建适当的处理程序; 这是我遇到麻烦的地方:
class CommandHandlerResolver {
public ICommandHandler<TCommand> GetHandler<TCommand>(TCommand command) {
// I'm using Ninject and have an instance of an IKernel
// The …Run Code Online (Sandbox Code Playgroud)