我在下面序列化一个类,该方法需要对象类型作为参数。typeof&GetType
string xml = SerializeObject(data, typeof(ClassData));
我认为第二个参数是没有必要的。我如何删除第二个参数? 如何获得数据类型作为类型?
我在下面序列化一个类,该方法需要对象类型作为参数。typeof&GetType
string xml = SerializeObject(data, typeof(ClassData));
我认为第二个参数是没有必要的。我如何删除第二个参数? 如何获得数据类型作为类型?
你可以这样做:
data.GetType()
这将使你的data
整个expre类型裂变将是
string xml = SerializeObject(data, data.GetType());
GetType()
是宣布Object
并且可以在对象的实例可以使用的方法。
typeof()
是一个声明,可以用于Type
没有它的一个实例。
// Get type from instance
Type type = data.GetType()
// Get type from Type
Type type = typeof(ClassData)
在一个简短的** typeof(ClassName)** = ** classVariable.GetType()**和我的方法成为** SerializeObject(数据); ** – 2011-03-16 13:02:05
我想你可以简单地表达这一点,是的.. :) – 2011-03-16 13:03:59
string xml = SerializeObject(data, data.GetType());
,如果你有
Person p = ... ;
得到的类型,你可以,如果你所需要的对象的运行时类型做
Type t = p.GetType()
。 p可以是扩展Person的类的对象。
或
Type t = typeof(Person);
使用以下:
classData.GetType();
data.GetType()应该返回'data'类的类型对象。
要获得data
类型为Type
,你可以使用这个语法:
Type dataType = data.GetType();
我希望这是你的要求,因为这个问题是不完全清楚给我。
你应该使用PascalCase命名你的类,以避免混淆。看看答案中发生了什么 - 尽管classData是一个类,但很多人都是变量。公约很重要。否则,你将不会受到其他极客的欢迎。这并不好玩。 – 2011-03-16 12:21:39
这是Microsoft的命名约定:http://msdn.microsoft.com/en-us/library/ms229002.aspx – 2011-03-16 12:23:43
什么是SerializeObject?一些自定义的方法也许,你可以发布什么参数是预期的,它是没有意义的要求对象和它的类型 – 2011-03-16 12:23:51