日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

WCF中服务继承多个契约的使用

發布時間:2023/11/27 生活经验 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WCF中服务继承多个契约的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

服務繼承多個契約其實也就是服務類實現了多個接口,主要是在配置中需要添加多個endpoint,各個endpoint之間的address不同、contract不同

契約:

[html] view plaincopyprint?
  1. [ServiceContract]?
  2. public interface IReportService?
  3. {?
  4. ??? [OperationContract]?
  5. ??? [WebGet(UriTemplate="Task",ResponseFormat=WebMessageFormat.Json)]?
  6. ??? List<SampleItem> GetList();?
  7. }?
    [ServiceContract]public interface IReportService{[OperationContract][WebGet(UriTemplate="Task",ResponseFormat=WebMessageFormat.Json)]List<SampleItem> GetList();}
[html] view plaincopyprint?
  1. [ServiceContract]?
  2. public interface ITestMoreContract?
  3. {?
  4. ??? [OperationContract]?
  5. ??? [WebGet(UriTemplate = "GetListTask/{objID}", ResponseFormat = WebMessageFormat.Json)]?
  6. ??? List<SampleItem> GetListTask(string objID);?
  7. }?
    [ServiceContract]public interface ITestMoreContract{[OperationContract][WebGet(UriTemplate = "GetListTask/{objID}", ResponseFormat = WebMessageFormat.Json)]List<SampleItem> GetListTask(string objID);}

服務實現:

?

[html] view plaincopyprint?
  1. [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]?
  2. public class Service1 : IReportService, ITestMoreContract?
  3. {?
  4. ??? public List<SampleItem> GetList()?
  5. ??? {?
  6. ??????? return new List<SampleItem>?
  7. ??????? {?
  8. ??????????? new SampleItem {Id=1,StringValue="value1"},?
  9. ??????????? new SampleItem {Id=2,StringValue="value2"},?
  10. ??????? };?
  11. ??? }?
  12. ?
  13. ??? public List<SampleItem> GetListTask(string objID)?
  14. ??? {?
  15. ??????? if (objID == "1")?
  16. ??????? {?
  17. ??????????? return new List<SampleItem>?
  18. ??????? {?
  19. ??????????? new SampleItem {Id=55,StringValue="value55"},?
  20. ??????????? new SampleItem {Id=66,StringValue="value66"},?
  21. ??????? };?
  22. ??????? }?
  23. ?
  24. ??????? return null;?
  25. ??? }?
  26. }?
    [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?
  1. <endpointaddress=""behaviorConfiguration="BXQS.Service.Report.ReportManage.Behavior"binding="webHttpBinding"??
  2. ????????? contract="WcfRestService1.IReportService"/>?
  3. <endpointaddress="Test"behaviorConfiguration="BXQS.Service.Report.ReportManage.Behavior"binding="webHttpBinding"?
  4. ????????? 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中服务继承多个契约的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。