具體來說,我認爲你是在找這個代碼在這裏(注:我沒有在VB.Net很多工作,所以我希望一切有語法正確):
VB.Net:
// Get the type of object being deserialized.
Dim t as Type = Type.GetType(typeNameString);
// Make a new instance of the object.
Dim o as Object = Activator.CreateInstance(t);
C#:
// Get the type of object being deserialized.
Type t = Type.GetType(typeNameString);
// Make a new instance of the object.
object o = Activator.CreateInstance(t);
編輯(2009年10月26日,15:10 GMT-0600):本Type.GetType(字符串typeNameString)方法並不總是識別的類型如簡單的全名。這將是您的最佳利益,以確保並在您的參數字符串儘可能多的信息就可以了,如下:
VB.Net/C#:
typeNameString = objectSerialized.GetType().Namespace + ", " + objectSerialized.GetType().Name + ", " + objectSerialized.GetType().Assembly.FullName
特別少,我剛結束了同樣的問題,並經過大量的研究,我終於想出了一個很好的解決方案來處理全部大部分這是動態的。我已將整個源代碼發佈到一個能夠序列化和反序列化對象的類中。任何類型不包含泛型或數組使用反射。隨意採取並使用它作爲你自己的。 如果有人決定添加對泛型和數組的處理,請發送給我一份更新的副本,以便我可以將其發佈回到我的博客(並且您將獲得榮譽提及; - )...)。它會遞歸地序列化所有的東西,並且在那裏也有一些特殊的編碼。
看一看,看看是否覆蓋你在尋找的一切:
http://maxaffinity.blogspot.com/2009/10/serialize-objects-manually.html
〜〜的md5sum
編輯(2009年10月27日14:38 GMT-0600):糾正了我的博客中有關班級的一些錯誤信息。