【问题标题】:C# to VB.NET conversion XML serializerC# 到 VB.NET 转换 XML 序列化器
【发布时间】: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

【问题讨论】:

标签: c# vb.net


【解决方案1】:

您根本不需要“新” - 只需使用:

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

【讨论】:

  • 哦,您的代码无法编译。它说 CustomXMLSerializeObject 类型没有定义。
  • @tmighty:您原来的 C# 是如何集成“T”的?您是否还希望有人为您定义 CustomXMLSerializeObject 类型?这似乎不合理。
  • 原代码没有集成T,但我想知道如何做到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-22
  • 2010-11-05
  • 1970-01-01
  • 2020-02-25
相关资源
最近更新 更多