215 for (
int i = 0; i < argTypes.Length; i++)
270 return var.GetType();
294 if (
int.TryParse(name,
out var result))
321 if (
value.Count == 0)
575 string name = propertyInfo.
Name;
614 if (propertyInfo !=
null)
648 if (propertyInfo !=
null)
681 if (propertyInfo !=
null)
866 int[] bits = decimal.GetBits((decimal)
o);
871 Ldc((
byte)((bits[3] >> 16) & 0
xFF));
927 internal void Ldc(
float f)
1186 if (!
source.IsAssignableFrom(target))
1207 else if (
source.IsAssignableFrom(target))
1242 return moduleBuilder.DefineType(
"Microsoft.Xml.Serialization.GeneratedAssembly." + name, attributes, parent, interfaces);
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
bool ICollection< KeyValuePair< TKey, TValue > >. Remove(KeyValuePair< TKey, TValue > keyValuePair)
void Add(TKey key, TValue value)
virtual void Push(object? obj)
static int ToInt32(object? value)
static ? object ChangeType(object? value, TypeCode typeCode)
static Type GetUnderlyingType(Type enumType)
static CultureInfo InvariantCulture
static AssemblyBuilder DefineDynamicAssembly(AssemblyName name, AssemblyBuilderAccess access)
virtual void EndExceptionBlock()
virtual LocalBuilder DeclareLocal(Type localType)
virtual void MarkLabel(Label loc)
virtual void Emit(OpCode opcode)
virtual Label BeginExceptionBlock()
virtual Label DefineLabel()
virtual void BeginCatchBlock(Type exceptionType)
override MethodAttributes Attributes
ParameterBuilder DefineParameter(int position, ParameterAttributes attributes, string? strParamName)
ILGenerator GetILGenerator()
static readonly OpCode Castclass
static readonly OpCode Ldloca
static readonly OpCode Ldelem_I2
static readonly OpCode Leave
static readonly OpCode Ldelem_U2
static readonly OpCode Unbox
static readonly OpCode Brfalse
static readonly OpCode Conv_I4
static readonly OpCode Ldsflda
static readonly OpCode Ldc_I8
static readonly OpCode Blt
static readonly OpCode Callvirt
static readonly OpCode Ldind_I1
static readonly OpCode Brtrue
static readonly OpCode Clt
static readonly OpCode Br_S
static readonly OpCode Conv_I2
static readonly OpCode Stloc
static readonly OpCode Ldind_R4
static readonly OpCode Ldind_I2
static readonly OpCode Newobj
static readonly OpCode Ldind_I4
static readonly OpCode Ldflda
static readonly OpCode Ldind_U2
static readonly OpCode Bgt
static readonly OpCode Conv_I1
static readonly OpCode Ldind_U4
static readonly OpCode Ldelem_U4
static readonly OpCode Add
static readonly OpCode Ldind_R8
static readonly OpCode Ble
static readonly OpCode Ldind_I8
static readonly OpCode Ldobj
static readonly OpCode Ldc_I4
static readonly OpCode Beq
static readonly OpCode Stelem_Ref
static readonly OpCode Stsfld
static readonly OpCode Br
static readonly OpCode Initobj
static readonly OpCode Conv_U1
static readonly OpCode Stelem_I4
static readonly OpCode Bne_Un
static readonly OpCode Ceq
static readonly OpCode Ldfld
static readonly OpCode Ldarga
static readonly OpCode Bge
static readonly OpCode Conv_U4
static readonly OpCode Ldelem_Ref
static readonly OpCode Ldc_I4_1
static readonly OpCode Ldc_I4_0
static readonly OpCode Stelem_I8
static readonly OpCode Isinst
static readonly OpCode Throw
static readonly OpCode Ldstr
static readonly OpCode Conv_R4
static readonly OpCode Pop
static readonly OpCode Conv_U2
static readonly OpCode Ldelema
static readonly OpCode Stobj
static readonly OpCode Ldind_U1
static readonly OpCode Ldsfld
static readonly OpCode Stelem_I1
static readonly OpCode Ldelem_I4
static readonly OpCode Ldelem_R4
static readonly OpCode Ldelem_U1
static readonly OpCode Ldtoken
static readonly OpCode Call
static readonly OpCode Stelem_R4
static readonly OpCode Conv_R8
static readonly OpCode Nop
static readonly OpCode Ret
static readonly OpCode Ldloc
static readonly OpCode Ldnull
static readonly OpCode Ldc_R4
static readonly OpCode Box
static readonly OpCode Conv_U8
static readonly OpCode Ldc_R8
static readonly OpCode Stelem_I2
static readonly OpCode Stelem_R8
static readonly OpCode Dup
static readonly OpCode Stfld
static readonly OpCode Newarr
static readonly OpCode Ldarg
static readonly OpCode Ldelem_I1
static readonly OpCode Conv_I8
static readonly OpCode Ldlen
static readonly OpCode Ldelem_R8
static readonly OpCode Ldelem_I8
static int DefineMethod(QCallModule module, int tkParent, string name, byte[] signature, int sigLength, MethodAttributes attributes)
virtual ? MethodInfo GetMethod
virtual ? MethodInfo SetMethod
static string UnknownConstantType
static string Format(string resourceFormat, object p1)
static string ArrayTypeIsNotSupported
static string XmlInvalidCharSchemaPrimitive
virtual bool IsAssignableFrom([NotNullWhen(true)] Type? c)
static TypeCode GetTypeCode(Type? type)
static readonly Type[] EmptyTypes
WhileState(CodeGenerator ilg)
void MarkLabel(Label label)
void Ldelem(Type arrayElementType)
void Brfalse(Label label)
void Stelem(Type arrayElementType)
Dictionary< string, ArgBuilder > _argList
bool TryDequeueLocal(Type type, string name, [NotNullWhen(true)] out LocalBuilder local)
void Call(ConstructorInfo ctor)
static bool IsNullableGenericType(Type type)
void ConvertAddress(Type source, Type target)
void ConvertValue(Type source, Type target)
void BeginExceptionBlock()
Type LoadMemberAddress(MemberInfo memberInfo)
MethodBuilder EndMethod()
static readonly OpCode[] s_ldindOpCodes
LocalBuilder DeclareLocal(Type type, string name)
void InternalConvert(Type source, Type target, bool isAddress)
LocalBuilder DeclareOrGetLocal(Type type, string name)
void StoreMember(MemberInfo memberInfo)
void WhileBeginCondition()
void Ldelema(Type arrayElementType)
OpCode GetLdindOpCode(TypeCode typeCode)
void New(ConstructorInfo constructorInfo)
OpCode GetConvOpCode(TypeCode typeCode)
void LdargAddress(ArgBuilder argBuilder)
Stack< object > _blockStack
readonly TypeBuilder _typeBuilder
void BeginCatchBlock(Type exception)
void BeginMethod(Type returnType, MethodBuilderInfo methodBuilderInfo, Type[] argTypes, string[] argNames, MethodAttributes methodAttributes)
static ModuleBuilder CreateModuleBuilder(AssemblyBuilder assemblyBuilder, string name)
void BeginMethod(Type returnType, string methodName, Type[] argTypes, string[] argNames, MethodAttributes methodAttributes)
void LoadAddress(object obj)
OpCode GetLdelemOpCode(TypeCode typeCode)
static AssemblyBuilder CreateAssemblyBuilder(string name)
void InitILGeneration(Type[] argTypes, string[] argNames, bool isStatic)
Stack< WhileState > _whileStack
static TypeBuilder CreateTypeBuilder(ModuleBuilder moduleBuilder, string name, TypeAttributes attributes, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type parent, Type[] interfaces)
object GetVariable(string name)
OpCode GetBranchCode(Cmp cmp)
Type GetVariableType(object var)
void Stloc(LocalBuilder local)
void Ldarg(ArgBuilder arg)
ArgBuilder GetArg(string name)
Type LoadMember(object obj, MemberInfo memberInfo)
void LoadArrayElement(object obj, object arrayIndex)
void Ldloc(Type type, string name)
void Call(MethodInfo methodInfo)
void NewArray(Type elementType, object len)
static readonly OpCode[] s_ldelemOpCodes
void Ldarga(ArgBuilder argBuilder)
void InitObj(Type valueType)
static readonly OpCode[] s_stelemOpCodes
OpCode GetStelemOpCode(TypeCode typeCode)
static readonly OpCode[] s_convOpCodes
LocalBuilder GetTempLocal(Type type)
void If(object value1, Cmp cmpOp, object value2)
void Stloc(Type type, string name)
MethodBuilder _methodBuilder
void Ldstr(string strVar)
object For(LocalBuilder local, object start, object end)
Dictionary<(Type, string), Queue< LocalBuilder > > _freeLocals
LocalBuilder GetLocal(string name)
static MethodInfo GetPropertyMethodFromBaseType(PropertyInfo propertyInfo, bool isGetter)
void InternalIf(bool negate)
bool TryGetVariable(string name, [NotNullWhen(true)] out object variable)
static bool IsStruct(Type objType)
void StoreArrayElement(object obj, object arrayIndex, object value)
readonly Dictionary< Type, LocalBuilder > _tmpLocals
void Castclass(Type target)
CodeGenerator(TypeBuilder typeBuilder)
void LdlocAddress(LocalBuilder localBuilder)
readonly Stack< Label > _leaveLabels
void Ldloca(LocalBuilder localBuilder)
void Ldloc(LocalBuilder localBuilder)
static readonly OpCode[] s_branchCodes
Type LoadMember(MemberInfo memberInfo)
bool TryGetValue(string key, [NotNullWhen(true)] out LocalBuilder value)
void AddToFreeLocals(Dictionary<(Type, string), Queue< LocalBuilder > > freeLocals)
readonly LocalScope parent
DynamicallyAccessedMemberTypes