在奇怪的方法层次结构中重载分辨率

时间:2015-09-02 14:30:50

标签: c# .net inheritance

我有一个方法ServiceBase的抽象基类Execute

protected virtual void Execute(RestRequest request, Action<IRestResponse> callback)
{
    Client.ExecuteAsync(request, (response) => callback(response));
}

有一个继承自此抽象基类DataServiceBase的类,它也是抽象的,并且还有一个方法Execute但参数差别不大:

protected virtual void Execute(RestRequest request, Action<IRestResponse<Records>> callback)
{
    Client.ExecuteAsync<Records>(request, (response) => callback(response));
}

继承自DataServiceBase的最后一个类是GetDataByIdService。这个类还有一个Execute方法调用base Execute

public void Execute(string peid, Action<IRestResponse> callback)
{
    var request = new RestRequest();
    request.AddUrlSegment(Peid, peid);
    Execute(request, callback);
}

问题如下: Execute(request, callback);Execute调用方法DataServiceBase,但我希望从ServiceBase类调用正确的方法。

用法示例:

public void CallbackFunction(IRestResponse response)
{ ... }

var service  = new GetDataByIdService();
service.Execute("123456", CallbackFunction);

0 个答案:

没有答案