1

オブジェクトをシリアル化しheadersて、文字列形式(おそらくbase64)で保存する必要があります。にはDictionary<String, Object>String値またはInt値しかないため、問題はありません。

 Dictionary<String, Object> headers = RequestHeaders.ProcessHeaders(HttpContext.Current); 

また、もちろん重要なのは、base64文字列をDictionaryに逆シリアル化できるようにすることです。

4

2 に答える 2

6

DictionaryをXMLにシリアル化することはできませんが、JSONにシリアル化することはできます。

string json = JsonConvert.SerializeObject(dictionary, Formatting.None);
byte[] bytes = Encoding.UTF8.GetBytes(json);
string base64String = Convert.ToBase64String(bytes);`

デシリアライズするには:

byte[] bytes = Convert.FromBase64String(base64String);
string json = Encoding.UTF8.GetString(bytes);
Dictionary<string, object> deserializedDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
于 2012-10-09T10:12:31.563 に答える
0

まず、Dictionaryは構造体であり、Base64はエンコード形式であるため、DictionaryからBase64にシリアル化できないことを明確にできます。

辞書からXML(.NETではサポートされていませんが、独自のシリアライザー/デシリアライザーを構築するか、サードパーティのものを使用できます)、JSON、または人間が読める形式である必要がない場合はバイナリにシリアル化する必要があります。次に、シリアル化の結果をBase64にエンコードできます。

ASP.NET ViewStatesはこれと同様に機能しますが(ただし、ViewStateは辞書ではないと思います)、シリアル化されてからBase64でエンコードされる構造です。

于 2012-10-09T10:43:45.320 に答える