Alternativa ao tipo aninhado do tipo Expressão <Func <T>>
Eu tenho uma função usada ao chamar um serviço. Antes de chamar o serviço, ele criará uma entrada de log:
protected TResult CallService<TService, TResult>(TService service,
Expression<Func<TService, TResult>> functionSelector)
{
Logger.LogServiceCall(service, functionSelector);
return functionSelector.Compile()(service);
}
O Visual Studio 2010 Code Analyzer me informa que não devo usar o Tipo Aninhado na seguinte mensagem:
CA1006: Microsoft.Design: considere um design em que 'ServiceManager.CallService <TService, Result> (TService, Expressão <Func <TService, TResult >>)' não aninha o tipo genérico 'Expressão <Func <TService, TResult >>' .
Embora eu possa simplesmente criar uma regra de supressão para esta entrada, existe uma alternativa que impeça a exibição desse aviso?