This repository has been archived on 2025-11-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
AUTS_OLD/UTS_Core/UTSModule/Service/TaskJsonSettings.vb

43 lines
1.5 KiB
VB.net
Raw Normal View History

2024-03-11 16:32:52 +08:00
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Serialization
Namespace UTSModule.Service
''' <summary>
''' 针对服务任务的Json设置
''' 当前作用筛选指定类中字段参与Json序列化
''' </summary>
Public Class TaskJsonSettings
Inherits DefaultContractResolver
''' <summary>
''' 需要操作的字段名
''' 与_retain参数结合使用,实现指定类中某些字段的Json序列化
''' </summary>
Private ReadOnly _name() As String
''' <summary>
''' 是否显示指定字段
''' 为真时,仅显示指定的字段名
''' 为假时,仅不显示指定的字段名
''' </summary>
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