av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

WCF序列化具體應用技巧分享

WCF已經出現就為廣大開發(fā)人員所青睞。它獨特的功能能夠幫助我們打造一個安全性極強,可跨平臺的開發(fā)解決方案。在這里我們就為大家詳細介紹一下其中一個比較重要的知識,WCF序列化的相關應用。

創(chuàng)新互聯于2013年開始,先為酒泉等服務建站,酒泉等地企業(yè),進行企業(yè)商務咨詢服務。為酒泉企業(yè)網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。

最近想做一個項目,考慮到需要根據用戶有可能會提供不同類型的數據所以用到了泛型來實現其功能:通過RptParameters的不同方法,加入不同類型的值,并且保存在Dictionary中,由于Dictionary中的第二個參數只能以object來包含不同類型的值,這就需在WCF序列化在進行的時候為其指明KnowTyp屬性,由于屬性標示要求是具體的類型,而類型只能在用戶使用時才能確定,這就出現了矛盾。全部代碼如下,問題出在下面代碼紅色部分,不能正常標示泛型屬性。

 
 
 
  1. [DataContract]  
  2. public class RptValue { }  
  3. [DataContract]  
  4. public class RptSingleValue : RptValue 
  5. {  
  6. private T _value;  
  7. [DataMember]  
  8. public T Value  
  9. {  
  10. get { return _value; }  
  11. set { _value = value; }  
  12. }  
  13. }  
  14. [DataContract]  
  15. public class RptFromToValue : RptValue 
  16. {  
  17.  private T _fvalue;  
  18. [DataMember]  
  19. public T FromValue  
  20. {  
  21. get { return _fvalue; }  
  22. set { _fvalue = value; }  
  23. }  
  24. private T _tvalue;  
  25. [DataMember]  
  26. public T ToValue  
  27. {  
  28. get { return _tvalue; }  
  29. set { _tvalue = value; }  
  30. }  
  31. }  
  32. //[KnownType(typeof(RptSingleValue))]  
  33. //[KnownType(typeof(RptFromToValue))]  
  34. //[KnownType(typeof(RptValue))]  
  35. [DataContract]  
  36. public class RptParameters  
  37. {  
  38. private Dictionary _datas=new Dictionary();  
  39. [DataMember]  
  40. public Dictionary Data  
  41. {  
  42. get { return _datas; }  
  43. set { _datas = value; }  
  44. }  
  45. public void AddSingleValue(string name,T value){  
  46. if (!this._datas.ContainsKey(name))  
  47. {  
  48. RptSingleValue rs = new RptSingleValue();  
  49. rs.Value = value;  
  50. this._datas.Add(name, rs);  
  51. }  
  52. }  
  53. public void AddFromToValue(string name,T fromValue,T toValue)  
  54. {  
  55. if (!this._datas.ContainsKey(name))  
  56. {  
  57. RptFromToValue rft = new RptFromToValue();  
  58. rft.FromValue = fromValue;  
  59. rft.ToValue = toValue;  
  60. this._datas.Add(name,rft);  
  61. }  
  62. }  

上面代碼中紅色字體部分,是需要完善的地方,如果去掉注釋會出現如下圖的錯誤傳到不能編譯通過,如果不加上,WCF序列化則不能通過。


標題名稱:WCF序列化具體應用技巧分享
文章出自:http://uogjgqi.cn/article/cohhjio.html
掃二維碼與項目經理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯網交流