Я только изменил способ обработки моих команд DDD (ранее не имело возвращаемый типа):Есть ли способ очистить следующий общий метод, используя любые новые функции C# 4?
public static CommandResult<TReturn> Execute<TCommand, TReturn>(TCommand command)
where TCommand : IDomainCommand
{
var handler = IoCFactory.GetInstance<ICommandHandler<TCommand, TReturn>>();
return handler.Handle(command);
}
Метод хорошо, и делает то, что я хочу, чтобы это сделать, однако его использование создает некоторый Fugly код:
CommandResult<Customer> result =
DomainCommands.Execute<CustomerCreateCommand, Customer>
(
new CustomerCreateCommand(message)
);
Прежде чем я добавил типа Customer
возвращения TReturn
, это было красиво и аккуратно, и метод может вывести типы из его использования. Однако это уже невозможно.
Есть ли какой-либо способ использования каких-либо новых функций C#, которые я мог бы переписать выше, чтобы сделать его более аккуратным, то есть с помощью Func, Action, Expression и т. Д.? Я, вероятно, ожидаю невозможного, но мне надоело писать столько кода, чтобы просто вызвать один метод, который был очень простым.