141 if (
mapping.TypeDesc.IsArrayLike)
153 if (
mapping.ChoiceIdentifier !=
null)
361 string result =
null;
378 if (
mapping.ChoiceIdentifier ==
null)
425 arraySource =
$"(({memberMapping.TypeDesc.CSharpName}){text2})";
498 if (
array.Length != 0 &&
array[0].Mapping.IsReturnValue)
658 case "Reader.ReadElementString()":
659 case "Reader.ReadString()":
697 case "Reader.ReadElementString()":
698 case "Reader.ReadString()":
728 if (
mapping.TypeDesc.FormatterName ==
"String")
732 if (
mapping.TypeDesc.CollapseWhitespace)
739 if (
mapping.TypeDesc.CollapseWhitespace)
748 if (
mapping.TypeDesc.CollapseWhitespace)
755 if (
mapping.TypeDesc.CollapseWhitespace)
764 if (
mapping.TypeDesc.HasCustomFormatter)
780 case "Reader.ReadElementString()":
781 case "Reader.ReadString()":
823 while (
value !=
null)
1217 ilg.
Ldstr(
"http://www.w3.org/2001/XMLSchema");
1360 if (member !=
null && member !=
member2)
1459 bool flag =
string.IsNullOrEmpty(
name);
1523 if (
member2.Mapping.Xmlns !=
null)
1545 if (
member2.ParamsReadSource !=
null)
1600 ILGenLoad(member.ArraySource, member.Mapping.TypeDesc.Type);
1825 string text =
string.Empty;
1948 if (
text.Mapping.TypeDesc.CollapseWhitespace)
1957 if (
text.Mapping.TypeDesc.CollapseWhitespace)
1963 else if (
text.Mapping.TypeDesc ==
base.StringTypeDesc ||
text.Mapping.TypeDesc.FormatterName ==
"String")
1973 ilg.
Ldc(
text.Mapping.TypeDesc.CollapseWhitespace);
1993 for (
int i = 0;
i < elements.Length;
i++)
2036 for (
int j = 0;
j < elements.Length;
j++)
2044 if (!
flag2 || (!flag && num > 0))
2154 text2 =
"soap = (System.Object[])EnsureArrayIndex(soap, " +
text +
"+2, typeof(System.Object)); ";
2400 ilg.Load(ilg.GetVariable(member.
ArrayName));
2412 ilg.MarkLabel(
label);
2426 WriteWhileNotLoopStart();
2427 string text =
"UnknownNode(null, " + ExpectedElements(
members) +
");";
2434 WriteWhileLoopEnd();
2464 WriteSourceBegin(
source);
2480 WriteSourceBegin(
source);
2483 throw Globals.
NotSupported(
"No such condition. PrimitiveMapping && IsNullable = String, XmlQualifiedName and never IsValueType");
2513 WriteSourceBegin(
source);
2524 WriteSourceBegin(
source);
2525 WritePrimitive(element.
Mapping,
"Reader.ReadElementString()");
2531 WriteSourceBegin(
source);
2560 ilg.If(
Cmp.EqualTo);
2566 WriteSourceBegin(
source);
2569 if (
mapping.TypeDesc.IsNullable)
2599 ilg.Ldc(!element.
Any);
2626 ilg.MarkLabel(
label);
2657 WriteUnknownNode(
"UnknownNode",
"null",
null,
anyIfs:
true);
2693 ilg.MarkLabel(
label);
2778 ilg.WhileBeginCondition();
2796 ilg.MarkLabel(
label);
2799 ilg.WhileEndCondition();
2818 ilg.BeginExceptionBlock();
2820 base.RaCodeGen.ILGenForCreateInstance(ilg,
mapping.TypeDesc.Type,
mapping.TypeDesc.CannotNew,
cast:
true);
2837 ilg.EndExceptionBlock();
2879 ilg.Ldstr(
match.Groups[
"qnames"].Value);
2890 ilg.ConvertValue(
local.LocalType,
typeof(
object));
2891 ilg.Ldstr(
match.Groups[
"qnames"].Value);
2967 WriteSourceBegin(
source);
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
void Add(TKey key, TValue value)
static readonly DBNull Value
static Type GetUnderlyingType(Type enumType)
static object ToObject(Type enumType, object value)
static CultureInfo InvariantCulture
ConstructorBuilder DefineDefaultConstructor(MethodAttributes attributes)
TypeInfo? CreateTypeInfo()
static int DefineProperty(QCallModule module, int tkParent, string name, PropertyAttributes attributes, byte[] signature, int sigLength)
static int DefineField(QCallModule module, int tkParent, string name, byte[] signature, int sigLength, FieldAttributes attributes)
static string XmlInternalError
static string Format(string resourceFormat, object p1)
static string Arg_NeverValueType
static string XmlMissingMethodEnum
static string XmlSequenceHierarchy
virtual bool IsAssignableFrom([NotNullWhen(true)] Type? c)
virtual Type MakeArrayType()
static readonly Type[] EmptyTypes
ChoiceIdentifierAccessor ChoiceIdentifier
ElementAccessor[] Elements
AttributeAccessor Attribute
void MarkLabel(Label label)
void Brfalse(Label label)
void Stelem(Type arrayElementType)
static bool IsNullableGenericType(Type type)
void ConvertValue(Type source, Type target)
MethodBuilder EndMethod()
LocalBuilder DeclareLocal(Type type, string name)
LocalBuilder DeclareOrGetLocal(Type type, string name)
void StoreMember(MemberInfo memberInfo)
void WhileBeginCondition()
void Ldelema(Type arrayElementType)
void New(ConstructorInfo constructorInfo)
void BeginMethod(Type returnType, string methodName, Type[] argTypes, string[] argNames, MethodAttributes methodAttributes)
void LoadAddress(object obj)
static TypeBuilder CreateTypeBuilder(ModuleBuilder moduleBuilder, string name, TypeAttributes attributes, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type parent, Type[] interfaces)
object GetVariable(string name)
Type GetVariableType(object var)
Type LoadMember(object obj, MemberInfo memberInfo)
void LoadArrayElement(object obj, object arrayIndex)
void Call(MethodInfo methodInfo)
void NewArray(Type elementType, object len)
void InitObj(Type valueType)
LocalBuilder GetTempLocal(Type type)
void Stloc(Type type, string name)
void Ldstr(string strVar)
object For(LocalBuilder local, object start, object end)
LocalBuilder GetLocal(string name)
bool TryGetVariable(string name, [NotNullWhen(true)] out object variable)
void Castclass(Type target)
void LdlocAddress(LocalBuilder localBuilder)
void Ldloc(LocalBuilder localBuilder)
static void CheckValidIdentifier([NotNull] string ident)
static string MakeValidInternal(string identifier)
static string GetCSharpName(string name)
static Exception NotSupported(string msg)
SpecifiedAccessor CheckSpecified
static string GetQuotedCSharpString(string value)
static string GetCSharpString(string value)
bool HasDefaultConstructor
TypeDesc ArrayElementTypeDesc
static MemberMapping[] GetSettableMembers(StructMapping structMapping)
void ILGenLoad(string source)
static Regex NewRegex(string pattern)
string ReferenceMapping(TypeMapping mapping)
MethodBuilder EnsureMethodBuilder(TypeBuilder typeBuilder, string methodName, MethodAttributes attributes, Type returnType, Type[] parameterTypes)
Dictionary< string, MemberInfo > memberInfos
static bool IsWildcard(SpecialMapping mapping)
MethodBuilderInfo GetMethodBuilder(string methodName)
string GetCSharpString(string value)
Dictionary< string, Type > CreatedTypes
void GenerateReferencedMethods()
Member(XmlSerializationReaderILGen outerClass, string source, string arraySource, string arrayName, int i, MemberMapping mapping, string choiceSource)
Member(XmlSerializationReaderILGen outerClass, string source, string arrayName, int i, MemberMapping mapping, string choiceSource)
readonly string _choiceSource
readonly string _choiceArraySource
Member(XmlSerializationReaderILGen outerClass, string source, string arrayName, int i, MemberMapping mapping, bool multiRef)
Member(XmlSerializationReaderILGen outerClass, string source, string arrayName, int i, MemberMapping mapping)
string _checkSpecifiedSource
readonly string _arrayName
string CheckSpecifiedSource
readonly string _choiceArrayName
readonly MemberMapping _mapping
readonly string _arraySource
Member(XmlSerializationReaderILGen outerClass, string source, string arraySource, string arrayName, int i, MemberMapping mapping, bool multiRef, string choiceSource)
Member(XmlSerializationReaderILGen outerClass, string source, string arraySource, string arrayName, int i, MemberMapping mapping)
void WriteCreateInstance(string source, bool ctorInaccessible, Type type)
override void GenerateMethod(TypeMapping mapping)
void WriteArrayLocalDecl(string typeName, string variableName, string initValue, TypeDesc arrayTypeDesc)
string NextMethodName(string name)
void WriteCreateMapping(TypeMapping mapping, string local)
void ILGenParamsReadSource(string paramsReadSource)
void GenerateInitCallbacksMethod()
void WriteEnumAndArrayTypes()
string WriteHashtable(EnumMapping mapping, string typeName, out MethodBuilder get_TableName)
void WriteAttributes(Member[] members, Member anyAttribute, string elseCall, LocalBuilder firstParam)
string GetChoiceIdentifierSource(MemberMapping mapping, string parent, TypeDesc parentTypeDesc)
void WriteSourceBegin(string source)
string GenerateElement(XmlMapping xmlMapping)
void WriteLiteralStructMethod(StructMapping structMapping)
void WriteMemberEnd(Member[] members, bool soapRefs)
void WriteID(string name)
void WriteSourceEnd(string source, Type elementType)
void WriteMemberBegin(Member[] members)
string GetArraySource(TypeDesc typeDesc, string arrayName, bool multiRef)
void GenerateEnd(string[] methods, XmlMapping[] xmlMappings, Type[] types)
void WriteDerivedTypes(StructMapping mapping, bool isTypedReturn, string returnTypeName)
void WriteStructMethod(StructMapping structMapping)
void ILGenElementElseString(string elementElseString)
void WriteDerivedSerializable(SerializableMapping head, SerializableMapping mapping, string source, bool isWrappedAny)
void WriteCatchException(Type exceptionType)
void WriteLocalDecl(string variableName, SourceInfo initValue)
string NextIdName(string name)
void WriteQNameEqual(string source, string name, string ns)
void WriteSourceEnd(string source, Type elementType, Type stackType)
void WriteArray(string source, string arrayName, ArrayMapping arrayMapping, bool readOnly, bool isNullable, int fixupIndex, int elementIndex)
Dictionary< string, EnumMapping > _enums
void WriteMemberElements(Member[] members, string elementElseString, string elseString, Member anyElement, Member anyText)
string MakeUnique(EnumMapping mapping, string name)
void WriteXmlNodeEqual(string source, string name, string ns)
string GenerateMembersElement(XmlMembersMapping xmlMembersMapping)
void WriteText(Member member)
string GenerateTypeElement(XmlTypeMapping xmlTypeMapping)
void WriteEnumMethod(EnumMapping mapping)
void WriteUnknownNode(string func, string node, ElementAccessor e, bool anyIfs)
void InitializeValueTypes(string arrayName, MemberMapping[] mappings)
XmlSerializationReaderILGen(TypeScope[] scopes, string access, string className)
void WriteNullableMethod(NullableMapping nullableMapping)
void WriteMemberElementsIf(Member[] members, Member anyElement, string elementElseString)
void WritePrimitive(TypeMapping mapping, string source)
void WriteElement(string source, string arrayName, string choiceSource, ElementAccessor element, ChoiceIdentifierAccessor choice, string checkSpecified, bool checkForNull, bool readOnly, int fixupIndex, int elementIndex)
void ILGenSet(string source, object value)
void WriteSourceBeginTyped(string source, TypeDesc typeDesc)
void ILGenParamsReadSource(string paramsReadSource, bool value)
void WriteIsStartTag(string name, string ns)
void WriteWhileNotLoopStart()
string GetChoiceIdentifierSource(MemberMapping[] mappings, MemberMapping member)
readonly Dictionary< string, string > _idNames
void WriteMemberEnd(Member[] members)
string ExpectedElements(Member[] members)
void WriteXmlNodeEqual(string source, string name, string ns, bool doAndIf)
void WriteMemberElementsElse(Member anyElement, string elementElseString)
readonly Dictionary< string, FieldBuilder > _idNameFields
string GenerateLiteralMembersElement(XmlMembersMapping xmlMembersMapping)
string GetArraySource(TypeDesc typeDesc, string arrayName)
void ILGenElseString(string elseString)
void WriteAttribute(Member member)
void WriteMemberText(Member anyText, string elseString)
bool IsSequence(Member[] members)
void WriteParamsRead(int length)
void AppendLiteral(string value)
void AppendFormatted(ReadOnlySpan< char > value)