public static class JsonOperation
{
private static readonly JavaScriptSerializer serializer = new JavaScriptSerializer();
public static string Serialize(object obj)
{
return serializer.Serialize(obj);
}
public static T Deserialize<T>(string json)
{
return serializer.Deserialize<T>(json);
}
public static object Deserialize(string typeFullName, string json)
{
return typeof(JsonOperation)
.GetMethod("Deserialize", new[] { typeof(string) })
.MakeGenericMethod(Type.GetType(typeFullName))
.Invoke(null, new object[] { json });
}
}
注:
(1)GetMethod
用来获取指定类的某个函数,第一个参数是函数名,第二个参数是函数的参数类型列表。
(2)MakeGenericMethod
指定范型方法的类型参数,返回一个MethodInfo
对象。
(3)Invoke
这里用来调用实例方法,还可以用来调用类方法。如果调用的是实例方法,Invoke
的第一个参数是该实例。如果调用类方法,Invoke
的第一个参数是null
。