Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
JsonParameterInfo.cs
Go to the documentation of this file.
1
using
System.Runtime.CompilerServices
;
2
3
namespace
System.Text.Json.Serialization.Metadata
;
4
5
internal
abstract
class
JsonParameterInfo
6
{
7
private
JsonTypeInfo
_runtimeTypeInfo
;
8
9
[
CompilerGenerated
]
10
private
bool
_003CMatchingPropertyCanBeNull_003Ek__BackingField
;
11
12
public
JsonParameterInfoValues
ClrInfo
;
13
14
public
JsonConverter
ConverterBase
{
get
;
private
set
; }
15
16
private
bool
MatchingPropertyCanBeNull
17
{
18
[
CompilerGenerated
]
19
set
20
{
21
_003CMatchingPropertyCanBeNull_003Ek__BackingField
=
value
;
22
}
23
}
24
25
public
object
DefaultValue
{
get
;
private
protected
set
; }
26
27
public
bool
IgnoreDefaultValuesOnRead
{
get
;
private
set
; }
28
29
public
JsonSerializerOptions
Options
{
get
;
set
; }
30
31
public
byte
[]
NameAsUtf8Bytes
{
get
;
private
set
; }
32
33
public
JsonNumberHandling
?
NumberHandling
{
get
;
private
set
; }
34
35
public
JsonTypeInfo
RuntimeTypeInfo
36
{
37
get
38
{
39
if
(
_runtimeTypeInfo
==
null
)
40
{
41
_runtimeTypeInfo
=
Options
.
GetOrAddClass
(
RuntimePropertyType
);
42
}
43
return
_runtimeTypeInfo
;
44
}
45
}
46
47
public
Type
RuntimePropertyType
{
get
;
set
; }
48
49
public
bool
ShouldDeserialize
{
get
;
private
set
; }
50
51
public
virtual
void
Initialize
(
JsonParameterInfoValues
parameterInfo
,
JsonPropertyInfo
matchingProperty
,
JsonSerializerOptions
options
)
52
{
53
ClrInfo
=
parameterInfo
;
54
Options
=
options
;
55
ShouldDeserialize
=
true
;
56
RuntimePropertyType
=
matchingProperty
.RuntimePropertyType;
57
NameAsUtf8Bytes
=
matchingProperty
.NameAsUtf8Bytes;
58
ConverterBase
=
matchingProperty
.ConverterBase;
59
IgnoreDefaultValuesOnRead
=
matchingProperty
.IgnoreDefaultValuesOnRead;
60
NumberHandling
=
matchingProperty
.NumberHandling;
61
MatchingPropertyCanBeNull
=
matchingProperty
.PropertyTypeCanBeNull;
62
}
63
64
public
static
JsonParameterInfo
CreateIgnoredParameterPlaceholder
(
JsonParameterInfoValues
parameterInfo
,
JsonPropertyInfo
matchingProperty
,
bool
sourceGenMode
)
65
{
66
JsonParameterInfo
jsonParameterInfo
=
new
JsonParameterInfo<sbyte>
();
67
jsonParameterInfo.ClrInfo
=
parameterInfo
;
68
jsonParameterInfo.RuntimePropertyType
=
matchingProperty
.RuntimePropertyType;
69
jsonParameterInfo.NameAsUtf8Bytes
=
matchingProperty
.NameAsUtf8Bytes;
70
if
(
sourceGenMode
)
71
{
72
jsonParameterInfo.DefaultValue
=
matchingProperty
.DefaultValue;
73
}
74
else
75
{
76
Type
parameterType
=
parameterInfo
.ParameterType;
77
JsonTypeInfo
jsonTypeInfo
;
78
GenericMethodHolder
genericMethodHolder
= ((!
matchingProperty
.Options.TryGetClass(
parameterType
,
out
jsonTypeInfo
)) ?
GenericMethodHolder
.
CreateHolder
(
parameterInfo
.ParameterType) :
jsonTypeInfo
.GenericMethods);
79
jsonParameterInfo.DefaultValue
=
genericMethodHolder
.
DefaultValue
;
80
}
81
return
jsonParameterInfo
;
82
}
83
}
84
internal
sealed
class
JsonParameterInfo
<T> :
JsonParameterInfo
85
{
86
public
T
TypedDefaultValue
{
get
;
private
set
; }
87
88
public
override
void
Initialize
(
JsonParameterInfoValues
parameterInfo
,
JsonPropertyInfo
matchingProperty
,
JsonSerializerOptions
options
)
89
{
90
base
.Initialize(
parameterInfo
,
matchingProperty
,
options
);
91
InitializeDefaultValue
(
matchingProperty
);
92
}
93
94
private
void
InitializeDefaultValue
(
JsonPropertyInfo
matchingProperty
)
95
{
96
if
(
ClrInfo
.
HasDefaultValue
)
97
{
98
object
defaultValue
=
ClrInfo
.
DefaultValue
;
99
if
(
defaultValue
==
null
&& !
matchingProperty
.PropertyTypeCanBeNull)
100
{
101
base.DefaultValue
=
TypedDefaultValue
;
102
return
;
103
}
104
base.DefaultValue
=
defaultValue
;
105
TypedDefaultValue
= (
T
)
defaultValue
;
106
}
107
else
108
{
109
base.DefaultValue
=
TypedDefaultValue
;
110
}
111
}
112
}
JsonParameterInfo
System.Text.Json.JsonSerializerOptions.GetOrAddClass
JsonTypeInfo GetOrAddClass(Type type)
Definition
JsonSerializerOptions.cs:661
System.Text.Json.JsonSerializerOptions
Definition
JsonSerializerOptions.cs:17
System.Text.Json.Serialization.JsonConverter
Definition
JsonConverter.cs:119
System.Text.Json.Serialization.Metadata.GenericMethodHolder.CreateHolder
static GenericMethodHolder CreateHolder(Type type)
Definition
GenericMethodHolder.cs:11
System.Text.Json.Serialization.Metadata.GenericMethodHolder.DefaultValue
object DefaultValue
Definition
GenericMethodHolder.cs:7
System.Text.Json.Serialization.Metadata.GenericMethodHolder
Definition
GenericMethodHolder.cs:18
System.Text.Json.Serialization.Metadata.JsonParameterInfoValues.DefaultValue
object? DefaultValue
Definition
JsonParameterInfoValues.cs:13
System.Text.Json.Serialization.Metadata.JsonParameterInfoValues.HasDefaultValue
bool HasDefaultValue
Definition
JsonParameterInfoValues.cs:11
System.Text.Json.Serialization.Metadata.JsonParameterInfoValues
Definition
JsonParameterInfoValues.cs:4
System.Text.Json.Serialization.Metadata.JsonParameterInfo.IgnoreDefaultValuesOnRead
bool IgnoreDefaultValuesOnRead
Definition
JsonParameterInfo.cs:27
System.Text.Json.Serialization.Metadata.JsonParameterInfo.NameAsUtf8Bytes
byte[] NameAsUtf8Bytes
Definition
JsonParameterInfo.cs:31
System.Text.Json.Serialization.Metadata.JsonParameterInfo.InitializeDefaultValue
void InitializeDefaultValue(JsonPropertyInfo matchingProperty)
Definition
JsonParameterInfo.cs:94
System.Text.Json.Serialization.Metadata.JsonParameterInfo.TypedDefaultValue
T TypedDefaultValue
Definition
JsonParameterInfo.cs:86
System.Text.Json.Serialization.Metadata.JsonParameterInfo.ConverterBase
JsonConverter ConverterBase
Definition
JsonParameterInfo.cs:14
System.Text.Json.Serialization.Metadata.JsonParameterInfo._003CMatchingPropertyCanBeNull_003Ek__BackingField
bool _003CMatchingPropertyCanBeNull_003Ek__BackingField
Definition
JsonParameterInfo.cs:10
System.Text.Json.Serialization.Metadata.JsonParameterInfo.CreateIgnoredParameterPlaceholder
static JsonParameterInfo CreateIgnoredParameterPlaceholder(JsonParameterInfoValues parameterInfo, JsonPropertyInfo matchingProperty, bool sourceGenMode)
Definition
JsonParameterInfo.cs:64
System.Text.Json.Serialization.Metadata.JsonParameterInfo.ShouldDeserialize
bool ShouldDeserialize
Definition
JsonParameterInfo.cs:49
System.Text.Json.Serialization.Metadata.JsonParameterInfo._runtimeTypeInfo
JsonTypeInfo _runtimeTypeInfo
Definition
JsonParameterInfo.cs:7
System.Text.Json.Serialization.Metadata.JsonParameterInfo.RuntimeTypeInfo
JsonTypeInfo RuntimeTypeInfo
Definition
JsonParameterInfo.cs:36
System.Text.Json.Serialization.Metadata.JsonParameterInfo.Options
JsonSerializerOptions Options
Definition
JsonParameterInfo.cs:29
System.Text.Json.Serialization.Metadata.JsonParameterInfo.ClrInfo
JsonParameterInfoValues ClrInfo
Definition
JsonParameterInfo.cs:12
System.Text.Json.Serialization.Metadata.JsonParameterInfo.DefaultValue
object DefaultValue
Definition
JsonParameterInfo.cs:25
System.Text.Json.Serialization.Metadata.JsonParameterInfo.Initialize
override void Initialize(JsonParameterInfoValues parameterInfo, JsonPropertyInfo matchingProperty, JsonSerializerOptions options)
Definition
JsonParameterInfo.cs:88
System.Text.Json.Serialization.Metadata.JsonParameterInfo.Initialize
virtual void Initialize(JsonParameterInfoValues parameterInfo, JsonPropertyInfo matchingProperty, JsonSerializerOptions options)
Definition
JsonParameterInfo.cs:51
System.Text.Json.Serialization.Metadata.JsonParameterInfo.MatchingPropertyCanBeNull
bool MatchingPropertyCanBeNull
Definition
JsonParameterInfo.cs:17
System.Text.Json.Serialization.Metadata.JsonParameterInfo.RuntimePropertyType
Type RuntimePropertyType
Definition
JsonParameterInfo.cs:47
System.Text.Json.Serialization.Metadata.JsonParameterInfo.NumberHandling
JsonNumberHandling? NumberHandling
Definition
JsonParameterInfo.cs:33
System.Text.Json.Serialization.Metadata.JsonParameterInfo
Definition
JsonParameterInfo.cs:85
System.Text.Json.Serialization.Metadata.JsonPropertyInfo
Definition
JsonPropertyInfo.cs:357
System.Text.Json.Serialization.Metadata.JsonTypeInfo
Definition
JsonTypeInfo.cs:14
System.Type
Definition
Type.cs:14
System.Runtime.CompilerServices
Definition
NullablePublicOnlyAttribute.cs:3
System.Text.Json.Serialization.Metadata
Definition
FSharpCoreReflectionProxy.cs:5
System.Text.Json.Serialization.JsonNumberHandling
JsonNumberHandling
Definition
JsonNumberHandling.cs:5
System.Text.Json.ConverterStrategy.Dictionary
@ Dictionary
System.ExceptionArgument.value
@ value
System.ExceptionArgument.options
@ options
System.ConsoleKey.T
@ T
source
System.Text.Json
System.Text.Json.Serialization.Metadata
JsonParameterInfo.cs
Generated by
1.10.0