Tôi có một chức năng được sử dụng khi gọi một dịch vụ. Trước khi nó gọi cho dịch vụ, nó sẽ tạo ra một bản ghi:Thay thế cho loại lồng nhau loại Expression <Func<T>>
protected TResult CallService<TService, TResult>(TService service,
Expression<Func<TService, TResult>> functionSelector)
{
Logger.LogServiceCall(service, functionSelector);
return functionSelector.Compile()(service);
}
Visual Studio 2010 Mã Analyzer thông báo với tôi rằng tôi không nên sử dụng lồng nhau Gõ vào thông báo sau:
CA1006: Microsoft .Design: Xem xét một thiết kế nơi 'ServiceManager.CallService < TService, quả > (TService, Biểu < Func < TService, TResult > >) 012.không tổ chung loại 'Biểu thức < Func < TService, TResult > >'.
Mặc dù tôi chỉ có thể tạo quy tắc loại bỏ cho mục nhập này, có một sự thay thế tồn tại có thể ngăn hiển thị cảnh báo như vậy không?
Tôi hoàn toàn biết rằng, tôi đang tìm kiếm giải pháp thay thế. Mục đích của việc phân tích mã không phải là để ngăn chặn tất cả mọi thứ, nhưng cuối cùng tìm hiểu một cách tốt hơn. –