private void InitSafeToDeserializeArray() { this._safeToDeserialize = new bool[this._typeTable.Length]; for (int index = 0; index < this._typeTable.Length; ++index) { long position = this._store.BaseStream.Position; string typeName; try { this._store.BaseStream.Position = (long)this._typeNamePositions[index]; typeName = this._store.ReadString(); } finally { this._store.BaseStream.Position = position; } RuntimeType runtimeType = (RuntimeType)Type.GetType(typeName, false); AssemblyName asmName2; string typeName2; if (runtimeType == (RuntimeType)null) { asmName2 = (AssemblyName)null; typeName2 = typeName; } else { if (runtimeType.BaseType == typeof(Enum)) { this._safeToDeserialize[index] = true; continue; } typeName2 = runtimeType.FullName; asmName2 = new AssemblyName(); RuntimeAssembly runtimeAssembly = (RuntimeAssembly)runtimeType.Assembly; asmName2.Init(runtimeAssembly.GetSimpleName(), runtimeAssembly.GetPublicKey(), (byte[])null, (Version)null, runtimeAssembly.GetLocale(), AssemblyHashAlgorithm.None, AssemblyVersionCompatibility.SameMachine, (string)null, AssemblyNameFlags.PublicKey, (StrongNameKeyPair)null); } foreach (string asmTypeName1 in ResourceReader.TypesSafeForDeserialization) { if (ResourceManager.CompareNames(asmTypeName1, typeName2, asmName2)) { this._safeToDeserialize[index] = true; } } } }
private void InitSafeToDeserializeArray() { this._safeToDeserialize = new bool[this._typeTable.Length]; for (int i = 0; i < this._typeTable.Length; i++) { string str; AssemblyName name; string fullName; long position = this._store.BaseStream.Position; try { this._store.BaseStream.Position = this._typeNamePositions[i]; str = this._store.ReadString(); } finally { this._store.BaseStream.Position = position; } RuntimeType type = (RuntimeType)Type.GetType(str, false); if (type == null) { name = null; fullName = str; } else { if (type.BaseType == typeof(Enum)) { this._safeToDeserialize[i] = true; continue; } fullName = type.FullName; name = new AssemblyName(); RuntimeAssembly assembly = (RuntimeAssembly)type.Assembly; name.Init(assembly.GetSimpleName(), assembly.GetPublicKey(), null, null, assembly.GetLocale(), AssemblyHashAlgorithm.None, AssemblyVersionCompatibility.SameMachine, null, AssemblyNameFlags.PublicKey, null); } foreach (string str3 in TypesSafeForDeserialization) { if (ResourceManager.CompareNames(str3, fullName, name)) { this._safeToDeserialize[i] = true; } } } }