Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros

◆ GetSetMemberValueDelegate()

static ReflectionXmlSerializationReaderHelper.SetMemberValueDelegate System.Xml.Serialization.ReflectionXmlSerializationReader.GetSetMemberValueDelegate ( object o,
string memberName )
inlinestaticprivate

Definition at line 620 of file ReflectionXmlSerializationReader.cs.

621 {
622 (Type, string) key = (o.GetType(), memberName);
623 if (!s_setMemberValueDelegateCache.TryGetValue(key, out var value))
624 {
625 MemberInfo effectiveSetInfo = ReflectionXmlSerializationHelper.GetEffectiveSetInfo(o.GetType(), memberName);
626 Type type;
627 if (effectiveSetInfo is PropertyInfo propertyInfo)
628 {
629 type = propertyInfo.PropertyType;
630 }
631 else
632 {
634 {
636 }
637 type = fieldInfo.FieldType;
638 }
639 MethodInfo method = typeof(ReflectionXmlSerializationReaderHelper).GetMethod("GetSetMemberValueDelegateWithType", BindingFlags.Static | BindingFlags.Public);
640 MethodInfo methodInfo = method.MakeGenericMethod(o.GetType(), type);
641 Func<MemberInfo, ReflectionXmlSerializationReaderHelper.SetMemberValueDelegate> func = (Func<MemberInfo, ReflectionXmlSerializationReaderHelper.SetMemberValueDelegate>)methodInfo.CreateDelegate(typeof(Func<MemberInfo, ReflectionXmlSerializationReaderHelper.SetMemberValueDelegate>));
644 }
645 return value;
646 }
static string XmlInternalError
Definition SR.cs:1812
Definition SR.cs:7
static readonly ConcurrentDictionary<(Type, string), ReflectionXmlSerializationReaderHelper.SetMemberValueDelegate > s_setMemberValueDelegateCache

References System.Xml.Dictionary, System.Xml.Serialization.ReflectionXmlSerializationHelper.GetEffectiveSetInfo(), System.key, System.Xml.Serialization.ReflectionXmlSerializationReader.s_setMemberValueDelegateCache, System.Xml.Serialization.ReflectionXmlSerializationReaderHelper.SetMemberValueDelegate(), System.type, System.Xml.Serialization.Type, System.value, and System.SR.XmlInternalError.

Referenced by System.Xml.Serialization.ReflectionXmlSerializationReader.AddItemInArrayMember(), System.Xml.Serialization.ReflectionXmlSerializationReader.SetOrAddValueToMember(), System.Xml.Serialization.ReflectionXmlSerializationReader.WriteAddCollectionFixup(), System.Xml.Serialization.ReflectionXmlSerializationReader.WriteEncodedStructMethod(), and System.Xml.Serialization.ReflectionXmlSerializationReader.WriteLiteralStructMethod().