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

◆ LoadMember()

Type System.Runtime.Serialization.CodeGenerator.LoadMember ( MemberInfo memberInfo)
inlinepackage

Definition at line 640 of file CodeGenerator.cs.

641 {
642 Type type = null;
644 {
646 type = fieldInfo.FieldType;
647 if (fieldInfo.IsStatic)
648 {
649 if (_codeGenTrace != 0)
650 {
651 EmitSourceInstruction("Ldsfld " + fieldInfo?.ToString() + " on type " + fieldInfo.DeclaringType);
652 }
654 }
655 else
656 {
657 if (_codeGenTrace != 0)
658 {
659 EmitSourceInstruction("Ldfld " + fieldInfo?.ToString() + " on type " + fieldInfo.DeclaringType);
660 }
662 }
663 }
664 else if (memberInfo is PropertyInfo propertyInfo)
665 {
666 type = propertyInfo.PropertyType;
667 if (propertyInfo != null)
668 {
669 MethodInfo getMethod = propertyInfo.GetMethod;
670 if (getMethod == null)
671 {
672 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(System.SR.Format(System.SR.NoGetMethodForProperty, propertyInfo.DeclaringType, propertyInfo)));
673 }
675 }
676 }
677 else
678 {
679 if (!(memberInfo is MethodInfo))
680 {
681 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(System.SR.Format(System.SR.CannotLoadMemberType, "Unknown", memberInfo.DeclaringType, memberInfo.Name)));
682 }
684 type = methodInfo.ReturnType;
686 }
688 return type;
689 }
virtual void Emit(OpCode opcode)
static readonly OpCode Ldfld
Definition OpCodes.cs:245
static readonly OpCode Ldsfld
Definition OpCodes.cs:251
static string NoGetMethodForProperty
Definition SR.cs:216
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string CannotLoadMemberType
Definition SR.cs:22
Definition SR.cs:7

References System.Runtime.Serialization.CodeGenerator._codeGenTrace, System.Runtime.Serialization.CodeGenerator._ilGen, System.Reflection.Emit.Call, System.SR.CannotLoadMemberType, System.Runtime.Serialization.XmlObjectSerializer.CreateSerializationException(), System.Reflection.Emit.ILGenerator.Emit(), System.Runtime.Serialization.CodeGenerator.EmitSourceInstruction(), System.Runtime.Serialization.CodeGenerator.EmitStackTop(), System.SR.Format(), System.Reflection.Emit.OpCodes.Ldfld, System.Reflection.Emit.OpCodes.Ldsfld, System.SR.NoGetMethodForProperty, System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(), System.ToString, and System.type.

Referenced by System.Runtime.Serialization.Json.JsonFormatReaderGenerator.CriticalHelper.CreateObject(), System.Runtime.Serialization.XmlFormatReaderGenerator.CriticalHelper.CreateObject(), System.Runtime.Serialization.Json.JsonFormatReaderGenerator.CriticalHelper.InvokeOnDeserialized(), System.Runtime.Serialization.XmlFormatReaderGenerator.CriticalHelper.InvokeOnDeserialized(), System.Runtime.Serialization.Json.JsonFormatReaderGenerator.CriticalHelper.InvokeOnDeserializing(), System.Runtime.Serialization.XmlFormatReaderGenerator.CriticalHelper.InvokeOnDeserializing(), System.Runtime.Serialization.Json.JsonFormatReaderGenerator.CriticalHelper.IsEndElement(), System.Runtime.Serialization.XmlFormatReaderGenerator.CriticalHelper.IsEndElement(), System.Runtime.Serialization.Json.JsonFormatWriterGenerator.CriticalHelper.LoadMemberValue(), System.Runtime.Serialization.XmlFormatWriterGenerator.CriticalHelper.LoadMemberValue(), System.Runtime.Serialization.Json.JsonFormatReaderGenerator.CriticalHelper.ReadCollection(), System.Runtime.Serialization.Json.JsonFormatReaderGenerator.CriticalHelper.ReadGetOnlyCollection(), System.Runtime.Serialization.XmlFormatReaderGenerator.CriticalHelper.ReadGetOnlyCollection(), System.Runtime.Serialization.Json.JsonFormatReaderGenerator.CriticalHelper.ReadISerializable(), System.Runtime.Serialization.XmlFormatReaderGenerator.CriticalHelper.ReadISerializable(), System.Runtime.Serialization.Json.JsonFormatReaderGenerator.CriticalHelper.ReadMembers(), System.Runtime.Serialization.XmlFormatReaderGenerator.CriticalHelper.ReadMembers(), System.Runtime.Serialization.Json.JsonFormatReaderGenerator.CriticalHelper.StoreCollectionValue(), System.Runtime.Serialization.XmlFormatReaderGenerator.CriticalHelper.StoreCollectionValue(), System.Runtime.Serialization.Json.JsonFormatWriterGenerator.CriticalHelper.ThrowIfCannotSerializeReadOnlyTypes(), System.Runtime.Serialization.Json.JsonFormatWriterGenerator.CriticalHelper.TryWritePrimitive(), System.Runtime.Serialization.XmlFormatWriterGenerator.CriticalHelper.TryWritePrimitive(), System.Runtime.Serialization.Json.JsonFormatWriterGenerator.CriticalHelper.WriteClass(), System.Runtime.Serialization.XmlFormatWriterGenerator.CriticalHelper.WriteClass(), System.Runtime.Serialization.Json.JsonFormatWriterGenerator.CriticalHelper.WriteCollection(), System.Runtime.Serialization.XmlFormatWriterGenerator.CriticalHelper.WriteCollection(), and System.Runtime.Serialization.XmlFormatWriterGenerator.CriticalHelper.WriteMembers().