【发布时间】:2012-10-09 12:46:29
【问题描述】:
我正在尝试创建两种方法来使用Json.Net 序列化/反序列化类并将它们保存/加载到文件中/从文件中保存/加载它们,这是我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using Newtonsoft.Json;
using System.Security.Cryptography;
using System.Text.RegularExpressions;
namespace System
{
public static class SystemExtentions
{
public static void SaveToFile(this object data, string FileName)
{
using (StreamWriter writer = new StreamWriter(FileName))
{
string s = JsonConvert.SerializeObject(data);
writer.Write(s);
writer.Close();
}
}
public static void LoadFromFile<t>(t date,string FileName)
{
using (StreamReader reader = new StreamReader(FileName))
{
data = JsonConvert.DeserializeObject<t>(reader.ReadToEnd());
reader.Close();
}
}
}
}
但在LoadFromFile 方法data = JsonConvert.DeserializeObject<t>(reader.ReadToEnd()); 中不起作用!这意味着如果我有这个代码:
Class1 c1=new Class1();
c1.LoadFromFile<Class1>("c1.clf");
代码运行后c1 的属性不会改变。
我想知道为什么,是否有任何解决方案可以以独立(独立于类类型和属性)(动态)方式从LoadFromFile 修改类或设置它的属性(反序列化!)?强>
【问题讨论】:
-
请定义“不起作用”!
-
请阅读您的问题并问问自己是否有任何不在您脑海中的人会理解它。 “修改类”是什么意思?你想达到什么目标? “不起作用”到底是什么意思?
-
@jeroenh:我不明白!
-
只是一个提示,使用大写“T”作为通用参数是一种常见的命名约定。
-
@jeroenh 表示我们不知道“不起作用”对您意味着什么。错误?例外?错误的行为(如果是,那到底是什么意思)?还有什么?
标签: c# .net c#-4.0 .net-4.0 extension-methods