151 for (
int i = 0; i < parameters.Length; i++)
171 for (
int i = 0; i < argTypes.Length; i++)
214 return var.GetType();
666 type = propertyInfo.PropertyType;
667 if (propertyInfo !=
null)
716 if (propertyInfo !=
null)
738 if (
type.IsValueType)
740 switch (
type.GetTypeCode())
878 return typeCode
switch
972 switch (
type.GetTypeCode())
1188 return typeCode
switch
1241 return typeCode
switch
1439 return typeCode
switch
1480 if (!
source.IsAssignableFrom(target))
1502 else if (
source.IsAssignableFrom(target))
1555 for (
int i = 0; i <
array.Length; i++)
1658 for (
int i = 0; i <
values.Length; i++)
1671 if (
type.IsValueType)
void Add(TKey key, TValue value)
static int ToInt32(object? value)
static ? object ChangeType(object? value, TypeCode typeCode)
static Type GetUnderlyingType(Type enumType)
static CultureInfo InvariantCulture
override Delegate CreateDelegate(Type delegateType)
ILGenerator GetILGenerator()
virtual LocalBuilder DeclareLocal(Type localType)
virtual void MarkLabel(Label loc)
virtual void Emit(OpCode opcode)
virtual Label DefineLabel()
static readonly OpCode Castclass
static readonly OpCode Ldloca
static readonly OpCode Ldelem_I2
static readonly OpCode Ldelem_U2
static readonly OpCode Unbox
static readonly OpCode Brfalse
static readonly OpCode Conv_I4
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 Conv_I2
static readonly OpCode Or
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 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 And
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 Sub
static readonly OpCode Ldc_I4_0
static readonly OpCode Stelem_I8
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 Switch
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 Starg
static readonly OpCode Box
static readonly OpCode Ldind_Ref
static readonly OpCode Not
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
virtual Type ParameterType
virtual ? MethodInfo SetMethod
void EmitSourceInstruction(string line)
static MethodInfo s_getTypeFromHandle
static MethodInfo ObjectToString
void LoadArrayElement(object obj, object arrayIndex)
void LdlocAddress(LocalBuilder localBuilder)
void Ldloca(LocalBuilder localBuilder)
void Ldloc(LocalBuilder localBuilder)
OpCode GetLdindOpCode(TypeCode typeCode)
void EndForEach(MethodInfo moveNextMethod)
void ElseIf(object value1, Cmp cmpOp, object value2)
void ThrowMismatchException(object expected)
void LoadDefaultValue(Type type)
void NewArray(Type elementType, object len)
OpCode GetLdelemOpCode(TypeCode typeCode)
void InitObj(Type valueType)
void Call(object thisObj, MethodInfo methodInfo)
void Call(ConstructorInfo ctor)
void IfNotIsEmptyString(LocalBuilder strLocal)
List< ArgBuilder > _argList
static Module s_serializationModule
readonly Dictionary< LocalBuilder, string > _localNames
static MethodInfo ObjectEquals
void EmitSourceLabel(string line)
static MethodInfo s_arraySetValue
void BeginMethod(string methodName, Type delegateType, bool allowPrivateMemberAccess)
void BeginMethod(DynamicMethod dynamicMethod, Type delegateType, string methodName, Type[] argTypes, bool allowPrivateMemberAccess)
static MethodInfo StringFormat
void LoadAddress(object obj)
void Castclass(Type target)
void ElseIfIsEmptyString(LocalBuilder strLocal)
void Ldstr(string strVar)
static MethodInfo s_objectEquals
void Call(MethodInfo methodInfo)
void Call(object thisObj, MethodInfo methodInfo, object param1, object param2)
DynamicMethod _dynamicMethod
void InitILGeneration(string methodName, Type[] argTypes)
Type LoadMember(MemberInfo memberInfo)
void EmitStackTop(Type stackTopType)
Label[] Switch(int labelCount)
void VerifyParameterCount(MethodInfo methodInfo, int expectedCount)
void Call(object thisObj, MethodInfo methodInfo, object param1, object param2, object param3, object param4, object param5)
LocalBuilder DeclareLocal(Type type, string name, bool isPinned)
void Stloc(LocalBuilder local)
OpCode GetBranchCode(Cmp cmp)
void Break(object forState)
void Ldarga(ArgBuilder argBuilder)
void CallStringFormat(string msg, params object[] values)
void LoadThis(object thisObj, MethodInfo methodInfo)
static readonly MethodInfo s_stringLength
void Ldelema(Type arrayElementType)
void InternalIf(bool negate)
void BeginWhileCondition()
static MethodInfo s_objectToString
void StoreMember(MemberInfo memberInfo)
static MethodInfo ArraySetValue
void InternalBreakFor(object userForState, OpCode branchInstruction)
void Case(Label caseLabel1, string caseLabelName)
void BeginMethod(Type returnType, string methodName, Type[] argTypes, bool allowPrivateMemberAccess)
Type GetVariableType(object var)
OpCode GetConvOpCode(TypeCode typeCode)
void IfFalseBreak(object forState)
static bool IsStruct(Type objType)
static Module SerializationModule
void Set(LocalBuilder local, object value)
void MarkLabel(Label label)
object For(LocalBuilder local, object start, object end)
ArgBuilder GetArg(int index)
void Ldelem(Type arrayElementType)
LocalBuilder DeclareLocal(Type type, string name)
void LoadParam(object arg, int oneBasedArgIndex, MethodBase methodInfo)
void Starg(ArgBuilder arg)
LocalBuilder _stringFormatArray
LocalBuilder DeclareLocal(Type type, string name, object initialValue)
void Call(object thisObj, MethodInfo methodInfo, object param1)
void StoreArrayElement(object obj, object arrayIndex, object value)
void Call(object thisObj, MethodInfo methodInfo, object param1, object param2, object param3, object param4, object param5, object param6)
void LdargAddress(ArgBuilder argBuilder)
void Call(object thisObj, MethodInfo methodInfo, object param1, object param2, object param3)
void BeginWhileBody(Cmp cmpOp)
static MethodInfo s_stringFormat
void InternalConvert(Type source, Type target, bool isAddress)
readonly CodeGenTrace _codeGenTrace
void Ldarg(ArgBuilder arg)
void Call(object thisObj, MethodInfo methodInfo, object param1, object param2, object param3, object param4)
void If(object value1, Cmp cmpOp, object value2)
void EmitSourceComment(string comment)
OpCode GetStelemOpCode(TypeCode typeCode)
void Brfalse(Label label)
void ConvertAddress(Type source, Type target)
void ForEach(LocalBuilder local, Type elementType, Type enumeratorType, LocalBuilder enumerator, MethodInfo getCurrentMethod)
void IfNotDefaultValue(object value)
void ConvertValue(Type source, Type target)
Stack< object > _blockStack
static MethodInfo GetTypeFromHandle
void Stelem(Type arrayElementType)
void New(ConstructorInfo constructorInfo)
static string GetClrTypeFullName(Type type)
static Exception ThrowHelperError(Exception e)
static SerializationException CreateSerializationException(string errorMessage)
static string ArrayTypeIsNotSupported_GeneratingCode
static string UnknownConstantType
static string NoGetMethodForProperty
static string Format(string resourceFormat, object p1)
static string CharIsInvalidPrimitive
static string NoSetMethodForProperty
static string IsNotAssignableFrom
static string ExpectingEnd
static string ParameterCountMismatch
static string CannotLoadMemberType
static string CanOnlyStoreIntoArgOrLocGot0
static string NoConversionPossibleTo
virtual bool IsAssignableFrom([NotNullWhen(true)] Type? c)
static TypeCode GetTypeCode(Type? type)
static readonly Type[] EmptyTypes