我想反序列化我的XML以獲取一個動態創建的類型數組(使用codedom),之後我使用反射來加載該程序集並加載類型是動態創建的。當我嘗試對我的XML進行反序列化時(它獲得了這個動態生成類型的對象的集合),我不知道如何向序列化程序提供類型。如何反序列化爲動態類型
我的代碼示例:
Assembly assembly = Assembly.LoadFile("myDynamicassembly.dll");
Type type = assembly.GetType("myDynamicType");
string xmlstring = myXml.OuterXml.ToString();
byte[] buffer = ASCIIEncoding.UTF8.GetBytes(xmlstring);
MemoryStream ms = new MemoryStream(buffer);
XmlReader reader = new XmlTextReader(ms);
myDynamicType[] EQs;
XmlSerializer serializer = new XmlSerializer(typeof(myDynamicType[]));
EQs = (myDynamicType[])(serializer.Deserialize(reader));
所以,這裏的問題是,我不知道「myDynamicType」而寫的代碼。它將在運行時創建和編譯。
請幫忙。
你知道在編譯時的類型雖然,或者你正在加載完全未知的程序集?你打算如何使用這些對象? –
不,我不知道編譯時的類型。實際上,它將在運行時生成並編譯到程序集中。所以,你可以說我的程序集和我的'myDynamicType'在編譯時都是完全未知的。就進一步的使用而言,我將把這個數組傳遞給我的web服務,它將對這個集合執行一些操作。 – tavier