Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ FieldModel() [3/3]

System.Xml.Serialization.FieldModel.FieldModel ( MemberInfo memberInfo,
Type fieldType,
TypeDesc fieldTypeDesc )
inlinepackage

Definition at line 64 of file FieldModel.cs.

65 {
66 _name = memberInfo.Name;
70 _checkShouldPersistMethodInfo = memberInfo.DeclaringType.GetMethod("ShouldSerialize" + memberInfo.Name, Type.EmptyTypes);
73 if (field != null)
74 {
75 if (field.FieldType != typeof(bool))
76 {
78 }
79 _checkSpecified = (field.IsInitOnly ? SpecifiedAccessor.ReadOnly : SpecifiedAccessor.ReadWrite);
81 }
82 else
83 {
84 PropertyInfo property = memberInfo.DeclaringType.GetProperty(memberInfo.Name + "Specified");
85 if (property != null)
86 {
87 if (StructModel.CheckPropertyRead(property))
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 }
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
MethodInfo? GetMethod(string name)
Definition Type.cs:675
readonly MemberInfo _memberInfo
Definition FieldModel.cs:10
readonly MethodInfo _checkShouldPersistMethodInfo
Definition FieldModel.cs:14
readonly SpecifiedAccessor _checkSpecified
Definition FieldModel.cs:8
readonly MemberInfo _checkSpecifiedMemberInfo
Definition FieldModel.cs:12

References System.Xml.Serialization.FieldModel._checkShouldPersist, System.Xml.Serialization.FieldModel._checkShouldPersistMethodInfo, System.Xml.Serialization.FieldModel._checkSpecified, System.Xml.Serialization.FieldModel._checkSpecifiedMemberInfo, System.Xml.Serialization.FieldModel._fieldType, System.Xml.Serialization.FieldModel._fieldTypeDesc, System.Xml.Serialization.FieldModel._isProperty, System.Xml.Serialization.FieldModel._memberInfo, System.Xml.Serialization.FieldModel._name, System.Xml.Serialization.FieldModel._readOnly, System.Xml.Serialization.StructModel.CheckPropertyRead(), System.Reflection.MemberInfo.DeclaringType, System.Xml.Dictionary, System.Type.EmptyTypes, System.SR.Format(), System.FullName, System.Type.GetField(), System.Type.GetMethod(), System.Type.GetProperty(), and System.SR.XmlInvalidSpecifiedType.