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
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