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

◆ FieldBuilder()

System.Reflection.Emit.FieldBuilder.FieldBuilder ( TypeBuilder typeBuilder,
string fieldName,
Type type,
Type[] requiredCustomModifiers,
Type[] optionalCustomModifiers,
FieldAttributes attributes )
inlinepackage

Definition at line 60 of file FieldBuilder.cs.

61 {
62 if (fieldName == null)
63 {
64 throw new ArgumentNullException("fieldName");
65 }
66 if (fieldName.Length == 0)
67 {
68 throw new ArgumentException(SR.Argument_EmptyName, "fieldName");
69 }
70 if (fieldName[0] == '\0')
71 {
72 throw new ArgumentException(SR.Argument_IllegalName, "fieldName");
73 }
74 if (type == null)
75 {
76 throw new ArgumentNullException("type");
77 }
78 if (type == typeof(void))
79 {
80 throw new ArgumentException(SR.Argument_BadFieldType);
81 }
82 m_fieldName = fieldName;
83 m_typeBuilder = typeBuilder;
85 m_Attributes = attributes & ~FieldAttributes.ReservedMask;
86 SignatureHelper fieldSigHelper = SignatureHelper.GetFieldSigHelper(m_typeBuilder.Module);
87 fieldSigHelper.AddArgument(type, requiredCustomModifiers, optionalCustomModifiers);
88 int length;
89 byte[] signature = fieldSigHelper.InternalGetSignature(out length);
90 ModuleBuilder module = m_typeBuilder.GetModuleBuilder();
91 m_fieldTok = TypeBuilder.DefineField(new QCallModule(ref module), typeBuilder.TypeToken, fieldName, signature, length, m_Attributes);
92 }

References System.Reflection.Emit.SignatureHelper.AddArgument(), System.SR.Argument_BadFieldType, System.SR.Argument_EmptyName, System.SR.Argument_IllegalName, System.Reflection.Emit.TypeBuilder.DefineField(), System.Reflection.Emit.SignatureHelper.GetFieldSigHelper(), System.Reflection.Emit.TypeBuilder.GetModuleBuilder(), System.Reflection.Emit.SignatureHelper.InternalGetSignature(), System.length, System.Reflection.Emit.FieldBuilder.m_Attributes, System.Reflection.Emit.FieldBuilder.m_fieldName, System.Reflection.Emit.FieldBuilder.m_fieldTok, System.Reflection.Emit.FieldBuilder.m_fieldType, System.Reflection.Emit.FieldBuilder.m_typeBuilder, System.Reflection.Emit.TypeBuilder.Module, System.type, and System.Reflection.Emit.TypeBuilder.TypeToken.