У меня есть следующая функция в C #:
bool Handle<TCommandHandler, TModel>(TModel model) where TCommandHandler : ICommandHandler<TModel> {
// ...
_container.Resolve<TCommandHandler>();
// ...
}
Поскольку TModel
ясно из параметра функции, я хочу каким-то образом не указывать его тип, когда вызов функции. В идеале я хочу назвать это так:
Handle<MyCommandHandler>(model);
Поскольку это, вероятно, невозможно, я придумал следующее:
HandleTemp<TModel> Handle<TModel>(TModel model) {
return new HandleTemp<TModel>(model);
}
public class HandleTemp<TModel> {
private TModel _model;
public HandleTemp(TModel model) { _model = model;}
public bool With<TCommandHandler>() where TCommandHandler : ICommandHandler<TModel> {
}
}
Итак, теперь я называю это так:
Handle(model).With<MyCommandHandler>();
Есть ли другие возможности? Я ошибся в своем решении?