System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write C# (CSharp) Method

Write() private method

private Write ( WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo, string memberNames, Type memberTypes, object memberData, WriteObjectInfo memberObjectInfos ) : void
objectInfo WriteObjectInfo
memberNameInfo NameInfo
typeNameInfo NameInfo
memberNames string
memberTypes System.Type
memberData object
memberObjectInfos WriteObjectInfo
return void
        private void Write(WriteObjectInfo objectInfo,
                           NameInfo memberNameInfo,
                           NameInfo typeNameInfo,
                           string[] memberNames,
                           Type[] memberTypes,
                           object[] memberData,
                           WriteObjectInfo[] memberObjectInfos)
        {
            int numItems = memberNames.Length;
            NameInfo topNameInfo = null;

            if (memberNameInfo != null)
            {
                memberNameInfo._objectId = objectInfo._objectId;
                _serWriter.WriteObject(memberNameInfo, typeNameInfo, numItems, memberNames, memberTypes, memberObjectInfos);
            }
            else if ((objectInfo._objectId == _topId) && (_topName != null))
            {
                topNameInfo = MemberToNameInfo(_topName);
                topNameInfo._objectId = objectInfo._objectId;
                _serWriter.WriteObject(topNameInfo, typeNameInfo, numItems, memberNames, memberTypes, memberObjectInfos);
            }
            else
            {
                if (!ReferenceEquals(objectInfo._objectType, Converter.s_typeofString))
                {
                    typeNameInfo._objectId = objectInfo._objectId;
                    _serWriter.WriteObject(typeNameInfo, null, numItems, memberNames, memberTypes, memberObjectInfos);
                }
            }

            if (memberNameInfo._isParentTypeOnObject)
            {
                memberNameInfo._transmitTypeOnObject = true;
                memberNameInfo._isParentTypeOnObject = false;
            }
            else
            {
                memberNameInfo._transmitTypeOnObject = false;
            }

            // Write members
            for (int i = 0; i < numItems; i++)
            {
                WriteMemberSetup(objectInfo, memberNameInfo, typeNameInfo, memberNames[i], memberTypes[i], memberData[i], memberObjectInfos[i]);
            }

            if (memberNameInfo != null)
            {
                memberNameInfo._objectId = objectInfo._objectId;
                _serWriter.WriteObjectEnd(memberNameInfo, typeNameInfo);
            }
            else if ((objectInfo._objectId == _topId) && (_topName != null))
            {
                _serWriter.WriteObjectEnd(topNameInfo, typeNameInfo);
                PutNameInfo(topNameInfo);
            }
            else if (!ReferenceEquals(objectInfo._objectType, Converter.s_typeofString))
            {
                _serWriter.WriteObjectEnd(typeNameInfo, typeNameInfo);
            }
        }

Same methods

ObjectWriter::Write ( WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo ) : void