Imports Newtonsoft.Json
Imports Newtonsoft.Json.Serialization
Namespace UTSModule.Service
'''
''' 针对服务任务的Json设置
''' 当前作用:筛选指定类中字段参与Json序列化
'''
Public Class TaskJsonSettings
Inherits DefaultContractResolver
'''
''' 需要操作的字段名
''' 与_retain参数结合使用,实现指定类中某些字段的Json序列化
'''
Private ReadOnly _name() As String
'''
''' 是否显示指定字段
''' 为真时,仅显示指定的字段名
''' 为假时,仅不显示指定的字段名
'''
Private ReadOnly _retain As Boolean
Sub New(name2() As String, Optional retain2 As Boolean = True)
_name = name2
_retain = retain2
End Sub
Protected Overrides Function CreateProperties(type As Type, memberSerialization As MemberSerialization) As IList(Of JsonProperty)
Dim lst As IList(Of JsonProperty) = MyBase.CreateProperties(type, memberSerialization)
Return lst.Where(Function(x As JsonProperty)
If _retain Then
Return _name.Contains(x.PropertyName)
Else
Return Not _name.Contains(x.PropertyName)
End If
End Function).ToList()
End Function
End Class
End Namespace