我是WCF的新手,想知道如何在一個項目中擁有多個服務並暴露單端點。我做了一些家庭工作,並意識到我們可以使用接口來實現這一點。但我無法繼續。多服務暴露單端點
你能不能給你意見。
例子:
- 我有一個像
Employee Service
和Customer Service
- 服務從客戶我應該訪問它像
IService.IEmployee.GetEmployee();
或IService.ICustomer.GetCustomer()
。
希望我明確了。請指導我
我是WCF的新手,想知道如何在一個項目中擁有多個服務並暴露單端點。我做了一些家庭工作,並意識到我們可以使用接口來實現這一點。但我無法繼續。多服務暴露單端點
你能不能給你意見。
例子:
Employee Service
和Customer Service
IService.IEmployee.GetEmployee();
或IService.ICustomer.GetCustomer()
。希望我明確了。請指導我
如果您有一項服務(實施),您可以公開該服務的任意數量的端點。服務實現類可以實現多個服務契約,例如
public class YourServiceImplementation : IEmployeeService, ICustomerService
{
.....
}
每一個端點,可以定義該服務實現但需要合同一個單一的與它有關 - 你不能擁有支持在同一時間多個合同一個端點:
<services>
<service name="YourNamespace.YourServiceImplementation">
<endpoint name="Employee"
address="http://YourServer/Services/EmployeeServices.svc"
binding="basicHttpBinding"
contract="YourNamespace.IEmployeeService" />
<endpoint name="Customer"
address="http://YourServer/Services/CustomerServices.svc"
binding="basicHttpBinding"
contract="YourNamespace.ICustomerService" />
</service>
</services>
因此,如果您的客戶需要訪問員工和客戶服務,則需要添加兩個獨立的客戶端代理,每個服務合約一個。
每個服務都有其自己的端點,並且服務中每個實現的服務契約都需要自己的端點。
在這種情況下,您需要立面。您將擁有包含Employee.Service和Customer.Service邏輯的單一合同單一服務。
最簡單的實現是這樣的:
public interface ICustomerService { ... }
public interface IEmployeeService { ... }
[ServiceContract]
public interface IService : ICustomerService, IEmployeeService { ... }
// Your WCF service
public class Service : IService { ... }
現在Service
可以同時實現ICustomerService
或IEmployeeService
接口,也可以只在內部創建一些實現的實例,並委託調用,如:
public class Service : IService
{
private CustomerService customerService;
public Service()
{
customerService = new CustomerService();
}
public Customer GetCustomer()
{
retunr customerService.GetCustomer();
}
}
我可以喜歡這個正確的marc嗎? <服務名稱= 「YourNamespace.YourServiceImplementation」> <端點名稱= 「SingleInterface」 地址= 「HTTP://YourServer/Services/IServices.svc」 結合= 「basicHttpBinding的」 合同 =「YourNamespace.IService 「/> –
CodeMaker