【发布时间】:2013-07-22 21:01:00
【问题描述】:
public static string JsonSerializer<T>(T t)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream();
ser.WriteObject(ms, t);
string jsonString = Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
return json;
}
以上是您典型的 json 辅助方法。 <T>的相关性和将参数作为类型T传递的相关性是什么?
鉴于所有对象都继承自object,我希望这个方法签名是这样的:
public static string JsonSerializer(object t)...
我很欣赏向 SO 社区询问为什么其他人的代码以某种方式读取可能是一种不好的提问方式,但这是在许多文章和教程中都可以找到的一种非常标准的帮助方法,所以我希望这种方法是一个被接受的。
【问题讨论】:
-
可能是
typeof(T)?这是获取变量声明类型的一种方式。 -
但是我的印象是object.GetType()可以代替这个吗?感谢您的回复。
-
是的,但是
typeof(T)在编译时解析,而GetType()在运行时解析。 -
@CédricBignon 那又怎样?
-
@delnan 所以,它稍微快一点。没有其他的。我认为在这种情况下不会有任何区别。
标签: c# generics object serialization methods