Framework版本 4.0
付代码 /// <summary>
/// 将对象,转为json字节数组
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static byte[] ConvertClassToBytes(object obj)
{
string str=jss.Serialize(obj);
return Encoding.UTF8.GetBytes(str);
} /// <summary>
/// 将josn字节数组转为对象
/// </summary>
/// <param name="bys"></param>
/// <param name="type"></param>
/// <returns></returns>
public static Object ConvertBytesToClass(byte[] bys,string type)
{
Assembly asb= Assembly.GetAssembly(typeof(ConvertStruct));
Type TR=asb.GetType("GameServer." + type);
return jss.Deserialize(Encoding.UTF8.GetString(bys), TR);
} private static JavaScriptSerializer jss = new JavaScriptSerializer();目标平台
Framework版本 3.5(这个版本无法更换,可以换的话我就不发贴了)如何用3.5的平台实现4.0的平台和上面一样的功能这个版本的函数 jss.Deserialize(string input);
低版本,没有Type 这个参数,我如何将他正确的转换成Object或者这样说,我的函数只提供了一个string 类型的 object类型,如何获取T类型
如果有T类型我就可以这样写
public static Object ConvertBytesToClass(byte[] bys,string type)
{
//假设获得了T类型
//现在让我迷茫的是,如何用 string 类型的type转换成T
return jss.Deserialize<T>(Encoding.UTF8.GetString(bys));
}
付代码 /// <summary>
/// 将对象,转为json字节数组
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static byte[] ConvertClassToBytes(object obj)
{
string str=jss.Serialize(obj);
return Encoding.UTF8.GetBytes(str);
} /// <summary>
/// 将josn字节数组转为对象
/// </summary>
/// <param name="bys"></param>
/// <param name="type"></param>
/// <returns></returns>
public static Object ConvertBytesToClass(byte[] bys,string type)
{
Assembly asb= Assembly.GetAssembly(typeof(ConvertStruct));
Type TR=asb.GetType("GameServer." + type);
return jss.Deserialize(Encoding.UTF8.GetString(bys), TR);
} private static JavaScriptSerializer jss = new JavaScriptSerializer();目标平台
Framework版本 3.5(这个版本无法更换,可以换的话我就不发贴了)如何用3.5的平台实现4.0的平台和上面一样的功能这个版本的函数 jss.Deserialize(string input);
低版本,没有Type 这个参数,我如何将他正确的转换成Object或者这样说,我的函数只提供了一个string 类型的 object类型,如何获取T类型
如果有T类型我就可以这样写
public static Object ConvertBytesToClass(byte[] bys,string type)
{
//假设获得了T类型
//现在让我迷茫的是,如何用 string 类型的type转换成T
return jss.Deserialize<T>(Encoding.UTF8.GetString(bys));
}
public object Deserialize(string input, Type targetType);.Net3.5里这个函数没有Type这个参数,如何用3.5实现和4.0一样的函数?这样我就可以使用了