System.Runtime.Serialization.Formatters.Soap.ReadObjectInfo.InitMemberInfo C# (CSharp) Method

InitMemberInfo() private method

private InitMemberInfo ( ) : void
return void
        private void InitMemberInfo()
        {
            InternalST.Soap( this,objectInfoId," ", objectType," InitMemberInfo Entry");

            cache = (SerObjectInfoCache)serObjectInfoInit.seenBeforeTable[objectType];
            if (cache == null)
            {
                InternalST.Soap( this,objectInfoId," ", objectType," InitMemberInfo new cache");
                cache = new SerObjectInfoCache();
                cache.memberInfos = FormatterServices.GetSerializableMembers(objectType, context);
                count = cache.memberInfos.Length;
                cache.memberNames = new String[count];
                cache.memberTypes = new Type[count];
                cache.memberAttributeInfos = new SoapAttributeInfo[count];

                // Calculate new arrays
                for (int i=0; i<count; i++)
                {
                    cache.memberNames[i] = cache.memberInfos[i].Name;
                    cache.memberTypes[i] = GetMemberType(cache.memberInfos[i]);
                    cache.memberAttributeInfos[i] = Attr.GetMemberAttributeInfo(cache.memberInfos[i], cache.memberNames[i], cache.memberTypes[i]);
                    InternalST.Soap( this, objectInfoId," InitMemberInfo name ",cache.memberNames[i],", type ",cache.memberTypes[i],", memberInfoType ",cache.memberInfos[i].GetType());                   
                }
                cache.fullTypeName = objectType.FullName;
                cache.assemblyString = objectType.Module.Assembly.FullName;
                serObjectInfoInit.seenBeforeTable.Add(objectType, cache);
            }
            memberData = new Object[cache.memberNames.Length];
            memberNames = new String[cache.memberNames.Length];

            isTyped = true;
            isNamed = true;
            InternalST.Soap( this,objectInfoId," ", objectType," InitMemberInfo Exit");                        
        }