43 lines
1.5 KiB
VB.net
43 lines
1.5 KiB
VB.net
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 |