【发布时间】:2014-09-19 11:23:15
【问题描述】:
我正在使用
Dim xs As New XmlSerializer(GetType(T))
但后来我意识到我需要将初始化更改为
XmlSerializer s = XmlSerializer.FromTypes(new[] { typeof(CustomXMLSerializeObject) })[0];
为了解决一个错误(根据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)
但是,这实际上并不正确,因为 New () 会引发编译器错误。
我也不确定如何添加我的“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代码示例:msdn.microsoft.com/en-us/library/…我想你只需要说
New Type(){...}而不是New (){...}。