2014-09-18 61 views
-1

我用C#到VB.NET轉換XML序列化

Dim xs As New XmlSerializer(GetType(T)) 

但後來我意識到,我需要(根據該初始化改變

XmlSerializer s = XmlSerializer.FromTypes(new[] { typeof(CustomXMLSerializeObject) })[0]; 

爲了解決一個bug C# XmlSerializer BindingFailure

但是,我不確定如何在我嘗試將此代碼轉換爲VB.NET時將其「T」加入其中。

在線轉換器告訴我,C#代碼

XmlSerializer s = XmlSerializer.FromTypes(new[] { typeof(CustomXMLSerializeObject) })[0]; 

應該

Dim s As XmlSerializer = XmlSerializer.FromTypes(New() {GetType(CustomXMLSerializeObject)})(0) 

然而,這真的不能正確的,因爲新的()拋出一個編譯器錯誤。

此外,我不知道如何添加我的「T」。

謝謝你的幫助!

我的電流,故障代碼是這樣的:

Public Function DeepClone(Of T)(obj As T) As T 
    Using ms = New MemoryStream() 
     Dim xs As XmlSerializer = XmlSerializer.FromTypes(New() {GetType(CustomXMLSerializeObject)})(0) 
     Return DirectCast(xs.Deserialize(ms), T) 
    End Using 
End Function 
+0

MSDN文檔。單擊VB代碼示例:http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.fromtypes(v=vs.110).aspx?cs-save-lang=1&cs-lang= vb#code-snippet-2我認爲你只需要說'New Type(){...}'而不是'New(){...}'。 – TyCobb 2014-09-19 00:02:08

回答

0

你不需要 '新' 在所有 - 只需使用:

Dim s As XmlSerializer = XmlSerializer.FromTypes({ GetType(CustomXMLSerializeObject) })(0) 
+0

如何將我的「T」集成到該代碼中? – tmighty 2014-09-19 07:30:02

+0

哦,你的代碼不能編譯。它表示類型CustomXMLSerializeObject未定義。 – tmighty 2014-09-19 07:32:32

+0

@tmighty:你原來的C#如何集成'T'?你是否也希望有人爲你定義CustomXMLSerializeObject類型?這似乎不合理。 – 2014-09-19 14:49:54