internal ObjectMap(string objectName, string[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, object[] typeInformationA, int[] memberAssemIds, ObjectReader objectReader, int objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
{
this.isInitObjectInfo = true;
this.objectName = objectName;
this.memberNames = memberNames;
this.binaryTypeEnumA = binaryTypeEnumA;
this.typeInformationA = typeInformationA;
this.objectReader = objectReader;
this.objectId = objectId;
this.assemblyInfo = assemblyInfo;
if (assemblyInfo == null)
{
throw new SerializationException(Environment.GetResourceString("Serialization_Assembly", new object[] { objectName }));
}
this.objectType = objectReader.GetType(assemblyInfo, objectName);
this.memberTypes = new Type[memberNames.Length];
for (int i = 0; i < memberNames.Length; i++)
{
InternalPrimitiveTypeE ee;
string str;
Type type;
bool flag;
BinaryConverter.TypeFromInfo(binaryTypeEnumA[i], typeInformationA[i], objectReader, (BinaryAssemblyInfo)assemIdToAssemblyTable[memberAssemIds[i]], out ee, out str, out type, out flag);
this.memberTypes[i] = type;
}
this.objectInfo = objectReader.CreateReadObjectInfo(this.objectType, memberNames, null);
if (!this.objectInfo.isSi)
{
this.objectInfo.GetMemberTypes(memberNames, this.objectInfo.objectType);
}
}