protected void ReflectionReadMember(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext context, ClassDataContract classContract, ref object obj, int memberIndex, DataMember[] members) { DataMember dataMember = members[memberIndex]; Debug.Assert(dataMember != null); if (dataMember.IsGetOnlyCollection) { var memberValue = ReflectionGetMemberValue(obj, dataMember); context.StoreCollectionMemberInfo(memberValue); ReflectionReadValue(xmlReader, context, dataMember, GetClassContractNamespace(classContract)); } else { context.ResetCollectionMemberInfo(); var value = ReflectionReadValue(xmlReader, context, dataMember, classContract.StableName.Namespace); MemberInfo memberInfo = dataMember.MemberInfo; Debug.Assert(memberInfo != null); ReflectionSetMemberValue(ref obj, value, dataMember); } }