WriteObjectEnd() private method

private WriteObjectEnd ( NameInfo memberNameInfo, NameInfo typeNameInfo ) : void
memberNameInfo NameInfo
typeNameInfo NameInfo
return void
示例#1
0
        private void Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo, string[] memberNames, Type[] memberTypes, object[] memberData, WriteObjectInfo[] memberObjectInfos)
        {
            int      length    = memberNames.Length;
            NameInfo nameInfo1 = (NameInfo)null;

            if (memberNameInfo != null)
            {
                memberNameInfo.NIobjectId = objectInfo.objectId;
                this.serWriter.WriteObject(memberNameInfo, typeNameInfo, length, memberNames, memberTypes, memberObjectInfos);
            }
            else if (objectInfo.objectId == this.topId && this.topName != null)
            {
                nameInfo1            = this.MemberToNameInfo(this.topName);
                nameInfo1.NIobjectId = objectInfo.objectId;
                this.serWriter.WriteObject(nameInfo1, typeNameInfo, length, memberNames, memberTypes, memberObjectInfos);
            }
            else if (objectInfo.objectType != Converter.typeofString)
            {
                typeNameInfo.NIobjectId = objectInfo.objectId;
                this.serWriter.WriteObject(typeNameInfo, (NameInfo)null, length, memberNames, memberTypes, memberObjectInfos);
            }
            if (memberNameInfo.NIisParentTypeOnObject)
            {
                memberNameInfo.NItransmitTypeOnObject = true;
                memberNameInfo.NIisParentTypeOnObject = false;
            }
            else
            {
                memberNameInfo.NItransmitTypeOnObject = false;
            }
            for (int index = 0; index < length; ++index)
            {
                this.WriteMemberSetup(objectInfo, memberNameInfo, typeNameInfo, memberNames[index], memberTypes[index], memberData[index], memberObjectInfos[index]);
            }
            if (memberNameInfo != null)
            {
                memberNameInfo.NIobjectId = objectInfo.objectId;
                this.serWriter.WriteObjectEnd(memberNameInfo, typeNameInfo);
            }
            else if (objectInfo.objectId == this.topId && this.topName != null)
            {
                this.serWriter.WriteObjectEnd(nameInfo1, typeNameInfo);
                this.PutNameInfo(nameInfo1);
            }
            else
            {
                if (objectInfo.objectType == Converter.typeofString)
                {
                    return;
                }
                __BinaryWriter binaryWriter = this.serWriter;
                NameInfo       nameInfo2    = typeNameInfo;
                binaryWriter.WriteObjectEnd(nameInfo2, nameInfo2);
            }
        }