我们来看看这个类的代码,上面有我的注释,获取有些地方说得不正确,那也没办法啦!


1


2

3

4

5



6

7

8



9

10

11


12

13

14

15



16

17

18



19

20

21

22

23



24

25

26

27


28

29

30

31


32

33

34

35

36

37



38

39

40

41



42

43

44



45

46

47

48

49

50

51

52

53

54

55

56

57


58

59

60

61

62

63

64



65

66



67

68

69



70

71



72

73



74

75

76

77

78

79

80

81

82


83

84

85

86

87

88



89

90

91

92



93

94

95

96

97

98

99



100

101

102

103

104

105

106

107

108


109

110

111

112

113

114



115

116



117

118

119

120

121

122



123

124

125

126

127

128

129


130

131

132

133

134

135



136

137

138



139

140

141



142

143

144

145

146

147

148

149

150

151

152

153

154


155

156

157

158

159

160

161



162

163

164

165



166

167



168

169

170

171

172

173

174

175


176

177

178

179

180

181

182



183

184

185

186



187

188



189

190

191

192

193

194

195

196


197

198

199

200

201

202

203



204

205

206

207



208

209



210

211

212

213

214

215

216

217

218

219

220


221

222

223

224

225

226



227

228

229

230

231



232

233

234

235

236

237

238


239

240

241

242

243

244

245

246

247

248

249

250

251



252

253

254

255



256



257

258

259

260



261

262

263

264

265

266

267



268

269

270

271

272

273

274

275


276

277

278

279

280

281

282



283

284

285

286

287

288

289

290

291



292

293

294

295

296

297



298

299

300

301

302

303

304

305

306

在SiteSettings.cs中可以发现有些属性加有[XmlIgnore]标记,这是在序列化和反序列化时对该属性都不起作用,如SettingsID等在数据库中都已经存在字段名。从代码中我们可以看到,将一个NameValueCollection集合序列化和反序列化,其实键和值对存储在一个结构中,这个结构就是:
1
public struct SerializerData
2
{
3
/**//// <summary>
4
/// 序列化NameValueCollection集合时用于保存Keys的字符串。
5
/// </summary>
6
public string Keys;
7
/**//// <summary>
8
/// 序列化NameValueCollection集合时用于保存Values的字符串。
9
/// </summary>
10
public string Values;
11
}

2



3


4

5

6

7


8

9

10

11

其他的源代码都有解释了,应该能搞懂里面的东西!