Guest User

Untitled

a guest
Jun 24th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.34 KB | None | 0 0
  1. [OperationContract]
  2. Customer[] FindCustomers(string id, string name, string location, ...);
  3.  
  4. #region
  5.  
  6. using System;
  7. using System.Data;
  8. using System.Data.SqlClient;
  9. using System.Xml.Serialization;
  10.  
  11. #endregion
  12.  
  13. [Serializable]
  14. public class SQLParamSerializationWrapper
  15. {
  16. #region Constants and Fields
  17.  
  18. private SqlParameter param;
  19.  
  20. #endregion
  21.  
  22. #region Constructors and Destructors
  23.  
  24. public SQLParamSerializationWrapper()
  25. {
  26. //paramless constructor for serialization
  27. this.param = new SqlParameter();
  28. }
  29.  
  30. public SQLParamSerializationWrapper(SqlParameter param)
  31. {
  32. this.SQLParam = param;
  33. }
  34.  
  35. #endregion
  36.  
  37. #region Properties
  38.  
  39. public DbType DbType
  40. {
  41. get
  42. {
  43. return this.SQLParam.DbType;
  44. }
  45. set
  46. {
  47. this.SQLParam.DbType = value;
  48. }
  49. }
  50.  
  51. public ParameterDirection Direction
  52. {
  53. get
  54. {
  55. return this.SQLParam.Direction;
  56. }
  57. set
  58. {
  59. this.SQLParam.Direction = value;
  60. }
  61. }
  62.  
  63. public string ParameterName
  64. {
  65. get
  66. {
  67. return this.SQLParam.ParameterName;
  68. }
  69. set
  70. {
  71. this.SQLParam.ParameterName = value;
  72. }
  73. }
  74.  
  75. [XmlIgnore]
  76. public SqlParameter SQLParam
  77. {
  78. get
  79. {
  80. return this.param;
  81. }
  82. set
  83. {
  84. this.param = value;
  85. }
  86. }
  87.  
  88. public int Size
  89. {
  90. get
  91. {
  92. return this.SQLParam.Size;
  93. }
  94. set
  95. {
  96. this.SQLParam.Size = value;
  97. }
  98. }
  99.  
  100. public object Value
  101. {
  102. get
  103. {
  104. return this.SQLParam.Value;
  105. }
  106. set
  107. {
  108. this.SQLParam.Value = value;
  109. }
  110. }
  111.  
  112. #endregion
  113. }
  114.  
  115. List<SQLParamSerializationWrapper> procParams = new List<SQLParamSerializationWrapper>();
  116. SqlParameter startdate = new SqlParameter("dateStart", new DateTime(2011, 9, 5));
  117. SqlParameter enddate = new SqlParameter("dateEnd", new DateTime(2011, 9, 6));
  118.  
  119. SQLParamSerializationWrapper startDateWrapper = new SQLParamSerializationWrapper(startdate);
  120. SQLParamSerializationWrapper endDateWrapper = new SQLParamSerializationWrapper(enddate);
  121.  
  122. procParams.Add(startDateWrapper);
  123. procParams.Add(endDateWrapper);
  124.  
  125. string paramsAsXML = "";
  126.  
  127. using (var sw = new StringWriter())
  128. {
  129. using (var xw = XmlWriter.Create(sw))
  130. {
  131. XmlSerializer xs = new XmlSerializer(procParams.GetType());
  132. xs.Serialize(xw, procParams);
  133. }
  134. paramsAsXML = sw.ToString();
  135. }
  136.  
  137. var procParams = new List<SqlParameter>();
  138.  
  139. StringReader sr = new StringReader(parm.Value);
  140. // Create an instance of the XmlSerializer specifying type.
  141. XmlSerializer deserializer = new XmlSerializer(typeof(List<SQLParamSerializationWrapper>));
  142.  
  143. List<SQLParamSerializationWrapper> sqlParamWrapper = (List<SQLParamSerializationWrapper>)deserializer.Deserialize(sr);
  144.  
  145. foreach (var param in sqlParamWrapper)
  146. {
  147. procParams.Add(param.SQLParam);
  148. }
Add Comment
Please, Sign In to add comment