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
2024-03-11 16:34:21 +08:00

43 lines
1.5 KiB
VB.net
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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