mirror of
https://github.com/ldqk/Masuit.Tools.git
synced 2026-10-27 11:16:34 +08:00
26 lines
673 B
C#
26 lines
673 B
C#
#if NET5_0_OR_GREATER
|
|
using System;
|
|
using System.Linq;
|
|
using System.Text.Json;
|
|
using System.Text.Json.Serialization.Metadata;
|
|
|
|
namespace Masuit.Tools.Systems;
|
|
|
|
public class SerializeIgnoreResolver : DefaultJsonTypeInfoResolver
|
|
{
|
|
public override JsonTypeInfo GetTypeInfo(Type t, JsonSerializerOptions o)
|
|
{
|
|
var jti = base.GetTypeInfo(t, o);
|
|
foreach (var prop in jti.Properties)
|
|
{
|
|
if (prop.AttributeProvider.GetCustomAttributes(typeof(DeserializeOnlyJsonPropertyAttribute), true).Union(prop.AttributeProvider.GetCustomAttributes(typeof(SerializeIgnoreAttribute), true)).Any())
|
|
{
|
|
prop.ShouldSerialize = (_, _) => false;
|
|
}
|
|
}
|
|
|
|
return jti;
|
|
}
|
|
}
|
|
#endif
|