我有一些存儲在表中的XML。我知道它應該反序列化到什麼對象,但我有很多類型的對象。泛型問題。我只是不理解如何製作一個通用的方法
所以,我有這個代碼,它的工作原理,但它是非常具體的1類型的對象。我想讓它通用來接受多種類型的對象之一。
Type _type = typeof(ReynoldsRCI.Services.rey_SvcApptView)
XmlSerializer ser = new XmlSerializer(_type);
object sck;
using (StringReader reader = new StringReader(_msg.RawText))
{
using (XmlTextReader xreader = new XmlTextReader(reader))
{
sck = ser.Deserialize(xreader);
}
}
不過,我很想有一個1行的方法調用,我將它傳遞對象和文本的類型,它會反序列化,並將其返回給調用者使用。但就泛型而言,我完全是個白癡,所以我的代碼甚至沒有編譯。
public T DoStuff<T>(T _type, string RawText)
{
// Doesn't like this line. Error "The best overloaded method match for 'System.Xml.Serialization.XmlSerializer.XmlSerializer(System.Type)' has some invalid arguments"
XmlSerializer ser = new XmlSerializer(_type);
object retObj;
using (StringReader reader = new StringReader(RawText))
{
using (XmlTextReader xreader = new XmlTextReader(reader))
{
retObj = ser.Deserialize(xreader);
}
}
// Doesn't like this line, either "The type or namespace name '_type' could not be found"
return (_type)retObj;
}
對於泛型,我顯然缺少一些基本的東西,而且我無法將它拼湊在一起。有人可以用快速指針幫助我嗎?
嘗試返回(T)retObj; – 2011-01-06 16:20:10