我在下面序列化一個類,該方法需要對象類型作爲參數。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