我有一個看起來像這樣識別一個FUNC傳遞的類型
public interface IMyService
{
T ServiceProxy<T>(Func<IService, T> request) where T : Response;
}
一個接口,它的用法是這樣的:
_mysvc.ServiceProxy((p) => p.Execute(new ActivateAccountRequest()));
_mysvc.ServiceProxy((p) => p.Execute(new DeleteAccountRequest()));
即各種不同的請求類型發送用於ServiceProxy方法包裹在Func中。所有請求子類相同的基類
我需要爲測試目的創建此接口的假實現。我想基於什麼類型的請求傳遞給方法
但我不能工作,如何識別傳入的請求的類型用於ServiceProxy方法
例如,如果做不同的事這是一個ActivateAccountRequest我想做一件事,如果是DeleteAccountRequest我想做另一個
有什麼想法?
如果您想基於參數類型做不同的事情,請使用重載而不是泛型。 – Lee
'typeof(T)'起作用。 *爲什麼*你想這樣做?使用泛型的一點是你不需要知道具體的類型。如果你這樣做,你可能需要使用重載或某種Visitor實現(它也使用重載)。 –
如果你正在測試你確切地知道你的測試的輸入是什麼,因此對於任何給定的測試,類型是什麼......你能解釋一下你的測試是什麼以及你想要做什麼,在類型? – Chris