日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
WCF版本更新應(yīng)用直接修改方法實(shí)現(xiàn)

大多數(shù)開發(fā)人員在使用WCF進(jìn)行版本更新時(shí),大部分都會(huì)通過繼承的方式來實(shí)現(xiàn)。那么,還有沒有其他更加簡便的方式呢?下面我們就為大家介紹一種直接修改原有服務(wù)和數(shù)據(jù)類型的方法來實(shí)現(xiàn)WCF版本更新。

創(chuàng)新互聯(lián)建站于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元臥龍做網(wǎng)站,已為上家服務(wù),為臥龍各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792

WCF版本更新測(cè)試原型:

 
 
 
  1. [DataContract]  
  2. public class Data  
  3. {  
  4. [DataMember]  
  5. public int x;  
  6. }  
  7. [ServiceContract]  
  8. public interface IMyService  
  9. {  
  10. [OperationContract]  
  11. void Test(Data d);  

客戶端代理

 
 
 
  1. //------------------------------------------  
  2. // < auto-generated> 
  3. // 此代碼由工具生成。  
  4. // 運(yùn)行庫版本:2.0.50727.42  
  5. //  
  6. // 對(duì)此文件的更改可能會(huì)導(dǎo)致不正確的行為,并且如果  
  7. // 重新生成代碼,這些更改將會(huì)丟失。  
  8. // < /auto-generated> 
  9. //-------------------------------------------  
  10. namespace ConsoleApplication1.localhost  
  11. {  
  12. [GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]  
  13. [DataContractAttribute(Namespace = "...")]  
  14. [SerializableAttribute()]  
  15. public partial class Data : object, IExtensibleDataObject  
  16. {  
  17. [OptionalFieldAttribute()]  
  18. private int xField;  
  19. [DataMemberAttribute()]  
  20. public int x  
  21. {  
  22. get  
  23. {  
  24. return this.xField;  
  25. }  
  26. set  
  27. {  
  28. this.xField = value;  
  29. }  
  30. }  
  31. }  
  32. [GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]  
  33. [ServiceContractAttribute(ConfigurationName = 
    "ConsoleApplication1.localhost.IMyService")]  
  34. public interface IMyService  
  35. {  
  36. [OperationContractAttribute(Action = "http://tempuri.org/IMyService/Test", 
    ReplyAction = "...")]  
  37. void Test(Data d);  
  38. }  
  39. [GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]  
  40. public interface IMyServiceChannel : IMyService, IClientChannel  
  41. {  
  42. }  
  43. [DebuggerStepThroughAttribute()]  
  44. [GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]  
  45. public partial class MyServiceClient : ClientBase< IMyService>, 
    IMyService  
  46. {  
  47. public void Test(Data d)  
  48. {  
  49. base.Channel.Test(d);  
  50. }  
  51. }  

我們將對(duì)該服務(wù)和數(shù)據(jù)類型進(jìn)行升級(jí),添加新的成員和服務(wù)方法來實(shí)現(xiàn)WCF版本更新。

 
 
 
  1. [DataContract]  
  2. public class Data  
  3. {  
  4. [DataMember]  
  5. public int x;  
  6. [DataMember]  
  7. public int y;  
  8. }  
  9. [ServiceContract]  
  10. public interface IMyService  
  11. {  
  12. [OperationContract]  
  13. void Test(Data d);  
  14. [OperationContract]  
  15. void Test2(int x);  

測(cè)試結(jié)果表明,客戶端在不更新代理文件的情況下依然正常執(zhí)行??磥碇苯油ㄟ^修改進(jìn)行版本更新也沒有什么問題。要是我們修改了成員的名稱會(huì)怎么樣?也沒問題,不過要使用 Name 屬性了。

 
 
 
  1. [DataContract]  
  2. public class Data  
  3. {  
  4. [DataMember(Name="x")]  
  5. public int x2;  
  6. [DataMember]  
  7. public int y;  
  8. }  
  9. [ServiceContract]  
  10. public interface IMyService  
  11. {  
  12. [OperationContract]  
  13. void Test(Data d);  
  14. [OperationContract]  
  15. void Test2(int x);  

WCF版本更新的操作提示:

1. ***為服務(wù)和相關(guān)成員特性添加 Namespace / Name 屬性。

2. 還是使用繼承方式進(jìn)行版本更新要好些,避免因?yàn)橐馕陡脑斐稍锌蛻舳藷o法執(zhí)行。


分享文章:WCF版本更新應(yīng)用直接修改方法實(shí)現(xiàn)
分享路徑:http://www.dlmjj.cn/article/djieehd.html