C#到VB.NET的转换XML序列化程序

本文关键字:XML 序列化 程序 转换 VB NET | 更新日期: 2023-09-27 18:22:39

我使用

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

C#到VB.NET的转换XML序列化程序

您根本不需要"New"-只需使用:

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