Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
FieldModel.cs
Go to the documentation of this file.
3
5
6internal sealed class FieldModel
7{
9
10 private readonly MemberInfo _memberInfo;
11
13
15
16 private readonly bool _checkShouldPersist;
17
18 private readonly bool _readOnly;
19
20 private readonly bool _isProperty;
21
22 private readonly Type _fieldType;
23
24 private readonly string _name;
25
26 private readonly TypeDesc _fieldTypeDesc;
27
28 internal string Name => _name;
29
31
33
35
37
39
41
43
44 internal bool ReadOnly => _readOnly;
45
46 internal bool IsProperty => _isProperty;
47
52
62
63 [RequiresUnreferencedCode("Calls GetField on MemberInfo type")]
65 {
66 _name = memberInfo.Name;
73 if (field != null)
74 {
75 if (field.FieldType != typeof(bool))
76 {
78 }
81 }
82 else
83 {
84 PropertyInfo property = memberInfo.DeclaringType.GetProperty(memberInfo.Name + "Specified");
85 if (property != null)
86 {
88 {
89 _checkSpecified = ((!property.CanWrite) ? SpecifiedAccessor.ReadOnly : SpecifiedAccessor.ReadWrite);
91 }
92 if (_checkSpecified != 0 && property.PropertyType != typeof(bool))
93 {
95 }
96 }
97 }
99 {
100 _readOnly = !((PropertyInfo)memberInfo).CanWrite;
101 _isProperty = true;
102 }
103 else if (memberInfo is FieldInfo)
104 {
105 _readOnly = ((FieldInfo)memberInfo).IsInitOnly;
106 }
107 }
108}
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string XmlInvalidSpecifiedType
Definition SR.cs:1718
Definition SR.cs:7
PropertyInfo? GetProperty(string name)
Definition Type.cs:815
FieldInfo? GetField(string name)
Definition Type.cs:607
static readonly Type[] EmptyTypes
Definition Type.cs:19
MethodInfo? GetMethod(string name)
Definition Type.cs:675
FieldModel(string name, Type fieldType, TypeDesc fieldTypeDesc, bool checkSpecified, bool checkShouldPersist)
Definition FieldModel.cs:48
readonly MemberInfo _memberInfo
Definition FieldModel.cs:10
FieldModel(MemberInfo memberInfo, Type fieldType, TypeDesc fieldTypeDesc)
Definition FieldModel.cs:64
FieldModel(string name, Type fieldType, TypeDesc fieldTypeDesc, bool checkSpecified, bool checkShouldPersist, bool readOnly)
Definition FieldModel.cs:53
readonly MethodInfo _checkShouldPersistMethodInfo
Definition FieldModel.cs:14
readonly SpecifiedAccessor _checkSpecified
Definition FieldModel.cs:8
readonly MemberInfo _checkSpecifiedMemberInfo
Definition FieldModel.cs:12
static bool CheckPropertyRead(PropertyInfo propertyInfo)