WCF中服务继承多个契约的使用
生活随笔
收集整理的這篇文章主要介紹了
WCF中服务继承多个契约的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
服務繼承多個契約其實也就是服務類實現了多個接口,主要是在配置中需要添加多個endpoint,各個endpoint之間的address不同、contract不同
契約:
[html] view plaincopyprint?- [ServiceContract]?
- public interface IReportService?
- {?
- ??? [OperationContract]?
- ??? [WebGet(UriTemplate="Task",ResponseFormat=WebMessageFormat.Json)]?
- ??? List<SampleItem> GetList();?
- }?
[ServiceContract]public interface IReportService{[OperationContract][WebGet(UriTemplate="Task",ResponseFormat=WebMessageFormat.Json)]List<SampleItem> GetList();} [html] view plaincopyprint? - [ServiceContract]?
- public interface ITestMoreContract?
- {?
- ??? [OperationContract]?
- ??? [WebGet(UriTemplate = "GetListTask/{objID}", ResponseFormat = WebMessageFormat.Json)]?
- ??? List<SampleItem> GetListTask(string objID);?
- }?
[ServiceContract]public interface ITestMoreContract{[OperationContract][WebGet(UriTemplate = "GetListTask/{objID}", ResponseFormat = WebMessageFormat.Json)]List<SampleItem> GetListTask(string objID);} 服務實現:
?
[html] view plaincopyprint?- [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]?
- public class Service1 : IReportService, ITestMoreContract?
- {?
- ??? public List<SampleItem> GetList()?
- ??? {?
- ??????? return new List<SampleItem>?
- ??????? {?
- ??????????? new SampleItem {Id=1,StringValue="value1"},?
- ??????????? new SampleItem {Id=2,StringValue="value2"},?
- ??????? };?
- ??? }?
- ?
- ??? public List<SampleItem> GetListTask(string objID)?
- ??? {?
- ??????? if (objID == "1")?
- ??????? {?
- ??????????? return new List<SampleItem>?
- ??????? {?
- ??????????? new SampleItem {Id=55,StringValue="value55"},?
- ??????????? new SampleItem {Id=66,StringValue="value66"},?
- ??????? };?
- ??????? }?
- ?
- ??????? return null;?
- ??? }?
- }?
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]public class Service1 : IReportService, ITestMoreContract{public List<SampleItem> GetList(){return new List<SampleItem>{new SampleItem {Id=1,StringValue="value1"},new SampleItem {Id=2,StringValue="value2"},};}public List<SampleItem> GetListTask(string objID){if (objID == "1"){return new List<SampleItem>{new SampleItem {Id=55,StringValue="value55"},new SampleItem {Id=66,StringValue="value66"},};}return null;}} 配置文件中endpoint節:
?
[html] view plaincopyprint?- <endpointaddress=""behaviorConfiguration="BXQS.Service.Report.ReportManage.Behavior"binding="webHttpBinding"??
- ????????? contract="WcfRestService1.IReportService"/>?
- <endpointaddress="Test"behaviorConfiguration="BXQS.Service.Report.ReportManage.Behavior"binding="webHttpBinding"?
- ????????? contract="WcfRestService1.ITestMoreContract"/>?
<endpoint address="" behaviorConfiguration="BXQS.Service.Report.ReportManage.Behavior" binding="webHttpBinding" contract="WcfRestService1.IReportService"/><endpoint address="Test" behaviorConfiguration="BXQS.Service.Report.ReportManage.Behavior" binding="webHttpBinding"contract="WcfRestService1.ITestMoreContract"/> ?
客戶端調用時訪問:
localhost:8001/Service1.svc/Task
localhost:8001/Service1.svc/Test/GetListTask/1
轉載于:https://www.cnblogs.com/wuquelin/articles/3062795.html
總結
以上是生活随笔為你收集整理的WCF中服务继承多个契约的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “暗凝无限思”下一句是什么
- 下一篇: 亚龙湾热带天堂森林公园老年人门票有优惠吗