自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

WCF序列化具體應(yīng)用技巧分享

開(kāi)發(fā) 開(kāi)發(fā)工具
WCF序列化在實(shí)際應(yīng)用中是一個(gè)比較重要的操作技巧。我們?cè)谶M(jìn)行序列化額度時(shí)候,需要對(duì)其指明一些特定屬性,在這里將會(huì)做一個(gè)詳細(xì)介紹。

WCF已經(jīng)出現(xiàn)就為廣大開(kāi)發(fā)人員所青睞。它獨(dú)特的功能能夠幫助我們打造一個(gè)安全性極強(qiáng),可跨平臺(tái)的開(kāi)發(fā)解決方案。在這里我們就為大家詳細(xì)介紹一下其中一個(gè)比較重要的知識(shí),WCF序列化的相關(guān)應(yīng)用。

最近想做一個(gè)項(xiàng)目,考慮到需要根據(jù)用戶(hù)有可能會(huì)提供不同類(lèi)型的數(shù)據(jù)所以用到了泛型來(lái)實(shí)現(xiàn)其功能:通過(guò)RptParameters的不同方法,加入不同類(lèi)型的值,并且保存在Dictionary中,由于Dictionary中的第二個(gè)參數(shù)只能以object來(lái)包含不同類(lèi)型的值,這就需在WCF序列化在進(jìn)行的時(shí)候?yàn)槠渲该鱇nowTyp屬性,由于屬性標(biāo)示要求是具體的類(lèi)型,而類(lèi)型只能在用戶(hù)使用時(shí)才能確定,這就出現(xiàn)了矛盾。全部代碼如下,問(wèn)題出在下面代碼紅色部分,不能正常標(biāo)示泛型屬性。

  1. [DataContract]  
  2. public class RptValue<T> { }  
  3. [DataContract]  
  4. public class RptSingleValue<T> : RptValue<T> 
  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<T> : RptValue<T> 
  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<string,object> _datas=new Dictionary<string,object>();  
  39. [DataMember]  
  40. public Dictionary<string,object> Data  
  41. {  
  42. get { return _datas; }  
  43. set { _datas = value; }  
  44. }  
  45. public void AddSingleValue<T>(string name,T value){  
  46. if (!this._datas.ContainsKey(name))  
  47. {  
  48. RptSingleValue<T> rs = new RptSingleValue<T>();  
  49. rs.Value = value;  
  50. this._datas.Add(name, rs);  
  51. }  
  52. }  
  53. public void AddFromToValue<T>(string name,T fromValue,T toValue)  
  54. {  
  55. if (!this._datas.ContainsKey(name))  
  56. {  
  57. RptFromToValue<T> rft = new RptFromToValue<T>();  
  58. rft.FromValue = fromValue;  
  59. rft.ToValue = toValue;  
  60. this._datas.Add(name,rft);  
  61. }  
  62. }  

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

【編輯推薦】

  1. WCF跟蹤調(diào)試具體代碼詳細(xì)剖析
  2. WCF可信賴(lài)會(huì)話正確使用方法介紹
  3. WCF Streaming流處理相關(guān)特點(diǎn)以及應(yīng)用技巧講解
  4. WCF Address正確含義解析
  5. WCF 3.5在實(shí)際應(yīng)用中特點(diǎn)分析
責(zé)任編輯:曹凱 來(lái)源: 博客園
相關(guān)推薦

2010-02-24 17:07:26

WCF序列化引擎

2010-02-24 17:41:05

WCF集合反序列化

2010-02-25 15:25:19

WCF通道

2009-12-09 09:38:15

PHP序列化數(shù)組

2009-11-09 15:06:34

WCF序列化

2009-11-05 16:34:37

WCF序列化

2010-03-01 13:06:49

WCF繼承

2009-12-22 14:31:27

WCF序列化依賴(lài)屬性

2010-02-22 16:00:22

WCF序列化

2009-12-21 16:52:02

WCF序列化

2010-02-22 15:20:54

WCF WS-Disc

2010-02-22 17:21:02

WCF消息交換

2010-03-01 15:40:04

WCF實(shí)例停用

2010-03-02 10:50:57

WCF元數(shù)據(jù)交換

2010-02-25 18:04:02

WCF IIS宿主

2010-02-26 10:46:12

WCF行為擴(kuò)展

2010-03-01 09:48:23

WCF會(huì)話服務(wù)

2010-02-25 10:52:29

WCF響應(yīng)服務(wù)

2009-11-05 14:25:36

WCF Data Co

2022-08-06 08:41:18

序列化反序列化Hessian
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)