Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 序列化词典<;字符串、字典<;字符串,字符串>&燃气轮机;任何形式(Json、xml等)_C#_Windows_Windows 8 - Fatal编程技术网

C# 序列化词典<;字符串、字典<;字符串,字符串>&燃气轮机;任何形式(Json、xml等)

C# 序列化词典<;字符串、字典<;字符串,字符串>&燃气轮机;任何形式(Json、xml等),c#,windows,windows-8,C#,Windows,Windows 8,将Dictionary序列化到可以存储它的位置,然后反序列化。 我在谷歌上搜索了很多次,找不到一个与.NET 4.5完全兼容的类或函数。你可以看看《开箱即用》这本词典。它也应该提供相当紧凑的输出 var source = new Dictionary<string, Dictionary<string, string>> { { "one", new Dictionary<string, string> { { "a", "1a"}, { "b", "

将Dictionary>序列化到可以存储它的位置,然后反序列化。 我在谷歌上搜索了很多次,找不到一个与.NET 4.5完全兼容的类或函数。

你可以看看《开箱即用》这本词典。它也应该提供相当紧凑的输出

var source = new Dictionary<string, Dictionary<string, string>>
{
    { "one", new Dictionary<string, string> { { "a", "1a"}, { "b", "1b" } } },
    { "two", new Dictionary<string, string> { { "a", "2a"}, { "b", "2b" } } }
};

var serializer = new JavaScriptSerializer();

// This gives {"one":{"a":"1a","b":"1b"},"two":{"a":"2a","b":"2b"}}
string serialized = serializer.Serialize(source);

// This gives a clone of the original dictionary.
var deserialized = serializer.Deserialize
    <Dictionary<string, Dictionary<string, string>>>(serialized);
var source=新字典
{
{“一”,新词典{{“a”,“1a”},{“b”,“1b”}},
{“二”,新词典{{“a”,“2a”},{“b”,“2b”}}
};
var serializer=新的JavaScriptSerializer();
//这就给出了{“一”:{“一”:“一”、“二”:“一”和“二”:{“一”:“二”、“二”:“二”
string serialized=serializer.Serialize(源);
//这提供了原始词典的克隆。
var deserialized=serializer.Deserialize
(连载);

你应该使用以下方法,它会让你的生活更轻松

或使用


我发现解决办法是使用

公共字符串序列化(字典全部)
{
字符串abc=JsonConvert.SerializeObject(全部,格式化.None,新JsonSerializerSettings
{
TypeNameHandling=TypeNameHandling.Objects,
TypeNameAssemblyFormat=System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple
});
返回abc;
}
公共字典反序列化(字符串文本)
{
字典abc;
abc=JsonConvert.DeserializeObject(文本,新JsonSerializerSettings
{
TypeNameHandling=TypeNameHandling.Objects,
TypeNameAssemblyFormat=System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple,
});
返回abc;
}

即,使用IXmlSerializable并创建自定义逻辑。请参见以下答案:但是由于某些原因,JavascriptSerializer在Metro中不存在:\n您无法添加对
System.Web.Extensions的引用
?在这种情况下,根据,您可以尝试名称空间,但我恐怕对它不熟悉,无法访问4.5,因此无法提供任何进一步的帮助。很好,谢谢您的帮助。不,无法添加对System.Web.Extensions的引用:\
public String Serialize(Dictionary<int, Dictionary<String, String>> all)
        {

            String abc = JsonConvert.SerializeObject(all, Formatting.None, new JsonSerializerSettings
                        {
                            TypeNameHandling = TypeNameHandling.Objects,
                            TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple
                        });
            return abc;
        }

         public Dictionary<int, Dictionary<String, String>> DeSerialize(String text)
         {

             Dictionary<int, Dictionary<String, String>> abc;
             abc = JsonConvert.DeserializeObject<Dictionary<int, Dictionary<String, String>>>(text, new JsonSerializerSettings
             {
                 TypeNameHandling = TypeNameHandling.Objects,
                 TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple,
             });
             return abc;
         }