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

◆ ImportDataMembers()

void System.Runtime.Serialization.EnumDataContract.EnumDataContractCriticalHelper.ImportDataMembers ( )
inlineprivate

Definition at line 140 of file EnumDataContract.cs.

141 {
142 Type underlyingType = base.UnderlyingType;
143 FieldInfo[] fields = underlyingType.GetFields(BindingFlags.Static | BindingFlags.Public);
145 List<DataMember> members = new List<DataMember>(fields.Length);
146 List<long> list = new List<long>(fields.Length);
147 foreach (FieldInfo fieldInfo in fields)
148 {
149 bool flag = false;
151 {
152 object[] array = fieldInfo.GetCustomAttributes(Globals.TypeOfEnumMemberAttribute, inherit: false).ToArray();
153 if (array != null && array.Length != 0)
154 {
155 if (array.Length > 1)
156 {
158 }
159 EnumMemberAttribute enumMemberAttribute = (EnumMemberAttribute)array[0];
160 DataMember dataMember = new DataMember(fieldInfo);
161 if (enumMemberAttribute.IsValueSetExplicitly)
162 {
163 if (enumMemberAttribute.Value == null || enumMemberAttribute.Value.Length == 0)
164 {
166 }
168 }
169 else
170 {
172 }
173 ClassDataContract.CheckAndAddMember(members, dataMember, memberNamesTable);
174 flag = true;
175 }
176 object[] array2 = fieldInfo.GetCustomAttributes(Globals.TypeOfDataMemberAttribute, inherit: false).ToArray();
177 if (array2 != null && array2.Length != 0)
178 {
180 }
181 }
182 else if (!fieldInfo.IsNotSerialized)
183 {
184 DataMember dataMember2 = new DataMember(fieldInfo);
186 ClassDataContract.CheckAndAddMember(members, dataMember2, memberNamesTable);
187 flag = true;
188 }
189 if (flag)
190 {
191 object value = fieldInfo.GetValue(null);
192 if (_isULong)
193 {
194 list.Add((long)Convert.ToUInt64(value, null));
195 }
196 else
197 {
198 list.Add(Convert.ToInt64(value, null));
199 }
200 }
201 }
204 _values = list;
205 }
void Add(TKey key, TValue value)
static void ThrowInvalidDataContractException(string message, Type type)
DataContract(DataContractCriticalHelper helper)
static string DataMemberOnEnumField
Definition SR.cs:62
static string InvalidEnumMemberValue
Definition SR.cs:144
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string TooManyEnumMembers
Definition SR.cs:282
Definition SR.cs:7

References System.Runtime.Serialization.EnumDataContract.EnumDataContractCriticalHelper._hasDataContract, System.Runtime.Serialization.EnumDataContract.EnumDataContractCriticalHelper._isULong, System.Runtime.Serialization.EnumDataContract.EnumDataContractCriticalHelper._members, System.Runtime.Serialization.EnumDataContract.EnumDataContractCriticalHelper._values, System.Collections.Generic.Dictionary< TKey, TValue >.Add(), System.array, System.Runtime.Serialization.ClassDataContract.CheckAndAddMember(), System.SR.DataMemberOnEnumField, System.Runtime.Serialization.Dictionary, System.SR.Format(), System.Runtime.Serialization.DataContract.GetClrTypeFullName(), System.SR.InvalidEnumMemberValue, System.list, System.Threading.Interlocked.MemoryBarrier(), System.Runtime.Serialization.DataContract.DataContractCriticalHelper.ThrowInvalidDataContractException(), System.Convert.ToInt64(), System.SR.TooManyEnumMembers, System.Convert.ToUInt64(), System.Runtime.Serialization.Globals.TypeOfDataMemberAttribute, System.Runtime.Serialization.Globals.TypeOfEnumMemberAttribute, and System.value.

Referenced by System.Runtime.Serialization.EnumDataContract.EnumDataContractCriticalHelper.EnumDataContractCriticalHelper().