46 public string Id {
get;
set; }
101 if (!
mapping.GenerateSerializer)
132 base.Reader.MoveToContent();
139 base.Reader.MoveToContent();
154 base.Reader.MoveToContent();
173 for (
int i = 0; i <
mappings.Length; i++)
275 if (
array.Length != 0 &&
array[0].Mapping.IsReturnValue)
284 base.Reader.MoveToElement();
288 if (
base.Reader.IsEmptyElement)
291 base.Reader.MoveToContent();
294 base.Reader.ReadStartElement();
296 base.Reader.MoveToContent();
300 base.Reader.MoveToContent();
320 for (
int i = 0; i <
mappings.Length; i++)
344 base.Reader.MoveToContent();
345 object[] p =
new object[
members.Length];
350 base.Reader.MoveToContent();
353 string attribute =
base.Reader.GetAttribute(
"root",
"http://schemas.xmlsoap.org/soap/encoding/");
359 base.Reader.MoveToContent();
370 flag =
base.Reader.IsEmptyElement;
371 base.Reader.ReadStartElement();
374 for (
int i = 0; i <
members.Length; i++)
403 if (
array.Length != 0 &&
array[0].Mapping.IsReturnValue)
412 base.Reader.MoveToContent();
423 base.Reader.MoveToContent();
458 void Wrapper(
object _)
460 if (
base.Reader.GetAttribute(
"id",
null) !=
null)
476 base.Reader.MoveToContent();
508 if (
base.Reader.GetAttribute(
"root",
"http://schemas.xmlsoap.org/soap/encoding/") ==
"0")
540 else if (
obj !=
null)
556 base.Reader.MoveToContent();
560 base.Reader.MoveToContent();
611 object[]
array =
new object[1];
629 type = propertyInfo.PropertyType;
652 return propertyInfo.GetValue(
o);
675 obj =
base.Document.CreateTextNode(
base.Reader.ReadString());
707 for (
int j = 0;
j <
member2.Mapping.Elements.Length;
j++)
750 if (member.FixupIndex >= 0)
855 else if (
checkForNull && member.Source ==
null && member.ArraySource ==
null)
902 member?.ChoiceSource?.Invoke(element.
Name);
903 if (member !=
null && member.ArraySource !=
null)
905 member?.ArraySource(
obj);
909 member?.Source?.Invoke(
obj);
910 member?.CheckSpecifiedSource?.Invoke(
true);
964 return propertyInfo.PropertyType;
975 return mapping.TypeDesc.CanBeElementValue;
1030 base.Reader.ReadStartElement();
1031 base.Reader.MoveToContent();
1035 base.Reader.MoveToContent();
1055 if (
mapping.TypeDesc.FormatterName ==
"String")
1057 if (
mapping.TypeDesc.CollapseWhitespace)
1063 if (!
mapping.TypeDesc.HasCustomFormatter)
1087 string name =
"To" +
mapping.TypeDesc.FormatterName;
1129 string source =
base.Reader.ReadElementString();
1155 for (
int i = 0; i <
constants.Length; i++)
1178 if (!
type.IsValueType)
1223 void Wrapper(
object value)
1234 base.Reader.MoveToElement();
1235 if (
base.Reader.IsEmptyElement)
1240 base.Reader.ReadStartElement();
1241 base.Reader.MoveToContent();
1245 base.Reader.MoveToContent();
1347 foreach (
object item in enumerable)
1473 if (member.
Source ==
null)
1476 if (
pi !=
null &&
typeof(
IList).IsAssignableFrom(
pi.PropertyType) && (
pi.SetMethod ==
null || !
pi.SetMethod.IsPublic))
1518 if (
choice !=
null &&
o !=
null)
1533 void Wrapper(
object value)
1538 void Wrapper(
object _)
1544 method.Invoke(
o,
new object[1] {
true });
1569 base.Reader.MoveToElement();
1570 if (
base.Reader.IsEmptyElement)
1575 base.Reader.ReadStartElement();
1581 if (
member2.Collection !=
null)
1604 base.Reader.ReadStartElement();
1651 if (
member2.Mapping.Xmlns !=
null)
1657 while (
base.Reader.MoveToNextAttribute())
1738 for (i = 0; i <
array.Length; i++)
1779 int num =
array?.Length ?? 0;
1792 if (
source.LocalName == name)
1794 return string.Equals(
source.NamespaceURI, ns);
1803 return string.Equals(
xsiType.Namespace, defaultNamespace);
static ? object CreateInstance([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors|DynamicallyAccessedMemberTypes.NonPublicConstructors)] Type type, BindingFlags bindingAttr, Binder? binder, object?[]? args, CultureInfo? culture)
static unsafe Array CreateInstance(Type elementType, int length)
static unsafe void Copy(Array sourceArray, Array destinationArray, int length)
void Add(TKey key, TValue value)
virtual void Add(object key, object? value)
static readonly DBNull Value
static object Parse(Type enumType, string value)
static object ToObject(Type enumType, object value)
static string XmlInternalError
static string Format(string resourceFormat, object p1)
static string XmlSequenceHierarchy
static string XmlInternalErrorDetails
static ? Type GetType(string typeName, bool throwOnError, bool ignoreCase)
static readonly Type[] EmptyTypes
ElementAccessor[] Elements
AttributeAccessor Attribute
SpecifiedAccessor CheckSpecified
static MemberInfo GetEffectiveSetInfo(Type declaringType, string memberName)
delegate void SetMemberValueDelegate(object o, object val)
CollectionMember Collection
Member(MemberMapping mapping)
Action< object > CheckSpecifiedSource
Action< object > ArraySource
Action< string, string > XmlnsSource
Action< object > ChoiceSource
ReflectionXmlSerializationReader(XmlMapping mapping, XmlReader xmlReader, XmlDeserializationEvents events, string encodingStyle)
static readonly ConcurrentDictionary<(Type, string), ReflectionXmlSerializationReaderHelper.SetMemberValueDelegate > s_setMemberValueDelegateCache
object WriteNullableMethod(NullableMapping nullableMapping, bool checkType, string defaultNamespace)
void CreateUnknownNodeException(object o)
readonly XmlMapping _mapping
object WriteEnumMethodSoap(EnumMapping mapping)
void WriteMemberElementsCheckType(List< CheckTypeSource > checkTypeHrefsSource)
bool IsSequence(Member[] members)
object WriteEnumMethod(EnumMapping mapping, string source)
object WriteElement(ElementAccessor element, bool checkSpecified, bool checkForNull, bool readOnly, string defaultNamespace, int fixupIndex=-1, int elementIndex=-1, Fixup fixup=null, Member member=null)
static TypeDesc QnameTypeDesc
void WriteMemberElementsIf(Member[] expectedMembers, Member anyElementMember, UnknownNodeAction elementElseAction, Fixup fixup=null, CheckTypeSource checkTypeSource=null)
static ReflectionXmlSerializationReaderHelper.SetMemberValueDelegate GetSetMemberValueDelegate(object o, string memberName)
object GetMemberValue(object o, MemberInfo memberInfo)
void SetCollectionObjectWithCollectionMember([NotNull] ref object collection, CollectionMember collectionMember, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors|DynamicallyAccessedMemberTypes.NonPublicConstructors|DynamicallyAccessedMemberTypes.PublicMethods|DynamicallyAccessedMemberTypes.NonPublicMethods)] Type collectionType)
XmlSerializationReadCallback CreateXmlSerializationReadCallback(TypeMapping mapping)
object ReflectionCreateObject([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors|DynamicallyAccessedMemberTypes.NonPublicConstructors|DynamicallyAccessedMemberTypes.PublicMethods|DynamicallyAccessedMemberTypes.NonPublicMethods)] Type type)
object WritePrimitive(TypeMapping mapping, Func< object, string > readFunc, object funcState)
bool WriteDerivedTypes(out object o, StructMapping mapping, XmlQualifiedName xsiType, string defaultNamespace, bool checkType, bool isNullable)
object GenerateTypeElement(XmlTypeMapping xmlTypeMapping)
object WriteEnumMethod(EnumMapping mapping, Func< object, string > readFunc, object funcState)
object GenerateLiteralMembersElement(XmlMembersMapping xmlMembersMapping)
void InitializeValueTypes(object[] p, MemberMapping[] mappings)
Hashtable WriteHashtable(EnumMapping mapping, string name)
object WriteStructMethod(StructMapping mapping, bool isNullable, bool checkType, string defaultNamespace)
bool QNameEqual(XmlQualifiedName xsiType, string name, string ns, string defaultNamespace)
bool XmlNodeEqual(XmlReader source, string name, string ns)
static TypeDesc StringTypeDesc
object DummyReadArrayMethod()
static bool IsWildcard(SpecialMapping mapping)
void AddItemInArrayMember(object o, MemberInfo memberInfo, Type memberType, object item)
bool WriteMemberText(Member anyText)
void WriteAddCollectionFixup(object o, Member member, object memberValue)
static void AddObjectsIntoTargetCollection(object targetCollection, List< object > sourceCollection, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicMethods)] Type targetCollectionType)
XmlSerializationFixupCallback CreateWriteFixupMethod(Member[] members)
void WriteAttributes(Member[] members, Member anyAttribute, UnknownNodeAction elseCall, ref object o)
void WriteAttribute(Member member, object attr=null)
bool GenerateLiteralMembersElementInternal(MemberMapping[] mappings, bool hasWrapperElement, object[] p)
XmlSerializationCollectionFixupCallback GetCreateCollectionOfObjectsCallback(Type collectionType)
object WriteLiteralStructMethod(StructMapping structMapping, bool isNullable, bool checkType, string defaultNamespace)
Fixup WriteMemberFixupBegin(Member[] members, object o)
object WriteAddCollectionFixup(Func< object > getSource, Action< object > setSource, object memberValue, TypeDesc typeDesc, bool readOnly)
static Type GetMemberType(MemberInfo memberInfo)
void SetOrAddValueToMember(object o, object value, MemberInfo memberInfo)
void ProcessUnknownNode(UnknownNodeAction action)
static void NoopAction(object o)
bool WriteEnumAndArrayTypes(out object o, StructMapping mapping, XmlQualifiedName xsiType, string defaultNamespace)
object GenerateEncodedMembersElement(XmlMembersMapping xmlMembersMapping)
object WriteArray(ArrayMapping arrayMapping, bool readOnly, bool isNullable, string defaultNamespace, int fixupIndex=-1, Fixup fixup=null, Member member=null)
override void InitCallbacks()
void WriteMembers(ref object o, Member[] members, UnknownNodeAction elementElseAction, UnknownNodeAction elseAction, Member anyElement, Member anyText)
void WriteMemberElements(Member[] expectedMembers, UnknownNodeAction elementElseAction, UnknownNodeAction elseAction, Member anyElement, Member anyText, Fixup fixup=null, List< CheckTypeSource > checkTypeHrefsSource=null)
object GenerateMembersElement(XmlMembersMapping xmlMembersMapping)
ConstructorInfo GetDefaultConstructor([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors|DynamicallyAccessedMemberTypes.NonPublicConstructors)] Type type)
object WriteEncodedStructMethod(StructMapping structMapping)
static MemberMapping[] GetSettableMembers(StructMapping structMapping)
TypeDesc GetTypeDesc(string name, string ns)
void Init(XmlReader r, XmlDeserializationEvents events, string encodingStyle, TempAssembly tempAssembly)
static ? byte[] ToByteArrayBase64(string? value)
static long ToEnum(string value, Hashtable h, string typeName)
void UnknownNode(object? o)
void AddReadCallback(string name, string ns, Type type, XmlSerializationReadCallback read)
XmlQualifiedName? GetXsiType()
object? ReadReferencedElement()
void AddFixup(Fixup? fixup)
void Referenced(object? o)
object? ReadTypedPrimitive(XmlQualifiedName type)
Exception CreateUnknownTypeException(XmlQualifiedName type)
bool IsXmlnsAttribute(string name)
XmlDocument? ReadXmlDocument(bool wrapped)
object GetTarget(string id)
object? ReadTypedNull(XmlQualifiedName type)
string? ReadString(string? value)
Exception CreateUnknownNodeException()
Exception CreateUnknownConstantException(string? value, Type enumType)
void ReadReferencedElements()
void ParseWsdlArrayType(XmlAttribute attr)
object? ReadReferencingElement(out string? fixupReference)
Exception CreateReadOnlyCollectionException(string name)
XmlNode? ReadXmlNode(bool wrapped)
IXmlSerializable ReadSerializable(IXmlSerializable serializable)
Exception CreateAbstractTypeException(string name, string? ns)
static ? byte[] ToByteArrayHex(string? value)
XmlQualifiedName ReadElementQualifiedName()
void Add(string prefix, string? ns)
static bool ToBoolean(string s)
static DateTimeOffset ToDateTimeOffset(string s)
static uint ToUInt32(string s)
static int ToInt32(string s)
static short ToInt16(string s)
static float ToSingle(string s)
static TimeSpan ToTimeSpan(string s)
static char ToChar(string s)
static double ToDouble(string s)
static sbyte ToSByte(string s)
static Guid ToGuid(string s)
static decimal ToDecimal(string s)
static ulong ToUInt64(string s)
static ushort ToUInt16(string s)
static byte ToByte(string s)
static long ToInt64(string s)
DynamicallyAccessedMemberTypes
delegate void XmlSerializationCollectionFixupCallback(object? collection, object? collectionItems)
delegate void XmlSerializationFixupCallback(object fixup)
delegate void UnknownNodeAction(object o)
delegate? object XmlSerializationReadCallback()