मुझे सेटिंग्स में StringDictionary
के साथ काम करने के लिए किसी भी विशिष्ट मुद्दे या कामकाज के बारे में पता नहीं है, लेकिन शायद समस्या को साइड-चरण करें और बस एक स्ट्रिंग के साथ काम करें? आप डेटा को xml, या (शायद सरल) के रूप में केवल एक कुंजी/मान सीमित स्ट्रिंग के रूप में क्रमबद्ध कर सकते हैं? ध्यान दें कि DbConnectionStringBuilder
ऐसा करने का एक आसान तरीका प्रदान करता है (नीचे जैसा)।
टोकननाइज्ड स्ट्रिंग "abc = def; ghi = jkl" है, लेकिन यह अधिक जटिल डेटा के लिए स्वचालित रूप से बचने वाले नियमों को संभाल लेगा। एक कोशिश के काबिल है?
using System;
using System.Collections.Specialized;
using System.Data.Common;
public static class Program
{
static void Main()
{
StringDictionary lookup = new StringDictionary();
lookup.Add("abc", "def");
lookup.Add("ghi", "jkl");
string foo = Serialize(lookup);
Console.WriteLine(foo);
StringDictionary bar = Deserialize(foo);
foreach (string key in bar.Keys)
{
Console.WriteLine("{0}={1}", key, bar[key]);
}
}
public static string Serialize(StringDictionary data)
{
if(data == null) return null; // GIGO
DbConnectionStringBuilder db = new DbConnectionStringBuilder();
foreach (string key in data.Keys)
{
db[key] = data[key];
}
return db.ConnectionString;
}
public static StringDictionary Deserialize(string data)
{
if (data == null) return null; // GIGO
DbConnectionStringBuilder db = new DbConnectionStringBuilder();
StringDictionary lookup = new StringDictionary();
db.ConnectionString = data;
foreach (string key in db.Keys)
{
lookup[key] = Convert.ToString(db[key]);
}
return lookup;
}
}
स्रोत
2009-01-08 12:52:49
हां, मैं सेव() को कॉल कर रहा हूं। मेरी सभी अन्य सेटिंग्स मेरी स्ट्रिंग डिक्शनरी को छोड़कर सही ढंग से सहेज रही हैं। –
एक धारावाहिक स्ट्रिंग डिक्शनरी के लिए http://stackoverflow.com/a/6194818/492336 – sashoalm