我有服務類層次結構是這樣的:如何創建對基本服務方法的引用?
基本服務:
[ServiceContract()]
public interface IServiceBase
{
[OperationContract]
void BaseMethod();
}
public class ServiceBase : IServiceBase
{
public void BaseMethod()
{}
}
服務A:
[ServiceContract()]
public interface IServiceA : IServiceBase
{}
public class ServiceA : ServiceBase, IServiceA
{}
服務B:
[ServiceContract()]
public interface IServiceB : IServiceBase
{}
public class ServiceB : ServiceBase, IServiceB
{}
在客戶端創建通過Visual Studio的「A。ServiceA和ServiceB的兩個代理類DD服務引用」工具:在兩種不同的服務
ProxyA proxyServiceA;
ProxyB proxyServiceB;
這些參考文獻(雖然在服務器側上的基類)。
我想打電話給通過相同的方式將這些代理從BaseService方法。例如,我想這些代理作爲參數傳遞給方法,並調用其BaseService方法,像這樣:
// somewhere on the client side
WorkMethod(proxyServiceA);
WorkMethod(proxyServiceB);
// Something like this, BUT I DON'T REALLY KNOW WHAT TYPE OF PARAMETER TO USE
void WorkMethod(ProxyBase proxyBase)
{
proxyBase.BaseMethod();
}
但如何做到這一點,使用什麼類型的參數(記住,這些代理屬於不同類別沒有BaseService共同的祖先)?
換句話說,在服務器端已知ServiceA和ServiceB有一個共同的祖先,它是可以調用基方法,但如何做到這一點的客戶端?
是否有可能獲得被識別爲這兩個代理基類客戶端上的一些課?(當然除了System.ServiceModel.ClientBase)
的問題是幾乎相同[此情況下(http://stackoverflow.com/questions/3422567/wcf-service-inheritance) - 創建一個實現基本服務的基本代理。 – Alex34758