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); } }