【发布时间】:2017-07-27 13:31:20
【问题描述】:
我需要将以下内容转换为 VB.Net。我尝试了在线转换器,但转换出错
var result = JsonConvert.DeserializeObject<T>(parsed["result"].ToString(),
new JsonSerializerSettings
{
/*
* Because Aliexpress Api logic is very weird -
* it could return "-" for totalResults field,
* Which is Integer by documentation and common sense
*/
Error = HandleDeserializationError
});
protected void HandleDeserializationError(object sender, ErrorEventArgs errorArgs)
{
var currentError = errorArgs.ErrorContext.Error.Message;
errorArgs.ErrorContext.Handled = true;
}
转换后的代码给出
Dim result = JsonConvert.DeserializeObject(Of T)(parsed("result").ToString(), New JsonSerializerSettings() With { _
Key .[Error] = HandleDeserializationError _
})
Protected Sub HandleDeserializationError(sender As Object, errorArgs As ErrorEventArgs)
Dim currentError = errorArgs.ErrorContext.[Error].Message
errorArgs.ErrorContext.Handled = True
End Sub
ErrorEventArgs 类定义为
Public Class ErrorEventArgs
Inherits EventArgs
Public Sub New(currentObject As Object, errorContext As ErrorContext)
Public ReadOnly Property CurrentObject As Object
Public ReadOnly Property ErrorContext As ErrorContext
End Class
基本上我有转换后的程序:
Protected Sub HandleDeserializationError(sender As Object, errorArgs As ErrorEventArgs)
Dim currentError As String = errorArgs.ErrorContext.[Error].Message
errorArgs.ErrorContext.Handled = True
End Sub
我需要将它分配为事件处理程序
有点像
Dim s As JsonSerializerSettings = New JsonSerializerSettings()
s.Error = HandleDeserializationError()
Dim result = JsonConvert.DeserializeObject(Of T)(parsed("result").ToString(), s)
【问题讨论】:
-
错误信息呢?
-
ErrorContext 类的一部分
-
更新了描述
-
错误信息的文本会很有用。