internal Type GetType(BinaryAssemblyInfo assemblyInfo, string name) { Type typeFromAssembly = null; if ((((this.previousName != null) && (this.previousName.Length == name.Length)) && (this.previousName.Equals(name) && (this.previousAssemblyString != null))) && ((this.previousAssemblyString.Length == assemblyInfo.assemblyString.Length) && this.previousAssemblyString.Equals(assemblyInfo.assemblyString))) { return(this.previousType); } typeFromAssembly = this.Bind(assemblyInfo.assemblyString, name); if (typeFromAssembly == null) { Assembly assm = assemblyInfo.GetAssembly(); if (this.bSimpleAssembly) { GetSimplyNamedTypeFromAssembly(assm, name, ref typeFromAssembly); } else { typeFromAssembly = FormatterServices.GetTypeFromAssembly(assm, name); } if (typeFromAssembly != null) { CheckTypeForwardedTo(assm, typeFromAssembly.Assembly, typeFromAssembly); } } this.previousAssemblyString = assemblyInfo.assemblyString; this.previousName = name; this.previousType = typeFromAssembly; return(typeFromAssembly); }
internal Type GetType(BinaryAssemblyInfo assemblyInfo, string name) { Type type = null; if (this.previousName != null && this.previousName.Length == name.Length && this.previousName.Equals(name) && this.previousAssemblyString != null && this.previousAssemblyString.Length == assemblyInfo.assemblyString.Length && this.previousAssemblyString.Equals(assemblyInfo.assemblyString)) { type = this.previousType; } else { type = this.Bind(assemblyInfo.assemblyString, name); if (type == null) { Assembly assembly = assemblyInfo.GetAssembly(); if (this.bSimpleAssembly) { ObjectReader.GetSimplyNamedTypeFromAssembly(assembly, name, ref type); } else { type = FormatterServices.GetTypeFromAssembly(assembly, name); } if (type != null) { ObjectReader.CheckTypeForwardedTo(assembly, type.Assembly, type); } } this.previousAssemblyString = assemblyInfo.assemblyString; this.previousName = name; this.previousType = type; } return(type); }
internal Type?GetType(BinaryAssemblyInfo assemblyInfo, string name) { Type?objectType; if (((_previousName != null) && (_previousName.Length == name.Length) && (_previousName.Equals(name))) && ((_previousAssemblyString != null) && (_previousAssemblyString.Length == assemblyInfo._assemblyString.Length) && (_previousAssemblyString.Equals(assemblyInfo._assemblyString)))) { objectType = _previousType; } else { objectType = Bind(assemblyInfo._assemblyString, name); if (objectType == null) { Assembly sourceAssembly = assemblyInfo.GetAssembly(); if (_isSimpleAssembly) { GetSimplyNamedTypeFromAssembly(sourceAssembly, name, ref objectType); } else { objectType = FormatterServices.GetTypeFromAssembly(sourceAssembly, name); } // here let us do the security check if (objectType != null) { CheckTypeForwardedTo(sourceAssembly, objectType.Assembly, objectType); } } _previousAssemblyString = assemblyInfo._assemblyString; _previousName = name; _previousType = objectType; } return(objectType); }
internal Type GetType(BinaryAssemblyInfo assemblyInfo, string name) { Type typeFromAssembly = null; if ((((this.previousName != null) && (this.previousName.Length == name.Length)) && (this.previousName.Equals(name) && (this.previousAssemblyString != null))) && ((this.previousAssemblyString.Length == assemblyInfo.assemblyString.Length) && this.previousAssemblyString.Equals(assemblyInfo.assemblyString))) { return this.previousType; } typeFromAssembly = this.Bind(assemblyInfo.assemblyString, name); if (typeFromAssembly == null) { Assembly assm = assemblyInfo.GetAssembly(); if (this.bSimpleAssembly) { GetSimplyNamedTypeFromAssembly(assm, name, ref typeFromAssembly); } else { typeFromAssembly = FormatterServices.GetTypeFromAssembly(assm, name); } if (typeFromAssembly != null) { CheckTypeForwardedTo(assm, typeFromAssembly.Assembly, typeFromAssembly); } } this.previousAssemblyString = assemblyInfo.assemblyString; this.previousName = name; this.previousType = typeFromAssembly; return typeFromAssembly; }
//private int hit; internal Type GetType(BinaryAssemblyInfo assemblyInfo, String name) { //Console.WriteLine("Get Type "+name+" "+assemblyInfo.assemblyString); Type objectType = null; if (((previousName != null) && (previousName.Length == name.Length) && (previousName.Equals(name))) && ((previousAssemblyString != null) && (previousAssemblyString.Length == assemblyInfo.assemblyString.Length) &&(previousAssemblyString.Equals(assemblyInfo.assemblyString)))) { objectType = previousType; //Console.WriteLine("Hit "+(++hit)+" "+objectType); } else { objectType = Bind(assemblyInfo.assemblyString, name); if (objectType == null) objectType = FormatterServices.GetTypeFromAssembly(assemblyInfo.GetAssembly(), name); if (objectType == null) throw new SerializationException(String.Format(Environment.GetResourceString("Serialization_TypeResolved"), name+", "+assemblyInfo.assemblyString)); previousAssemblyString = assemblyInfo.assemblyString; previousName = name; previousType = objectType; } //Console.WriteLine("name "+name+" assembly "+assemblyInfo.assemblyString+" objectType "+objectType); return objectType; }
[System.Security.SecurityCritical] // auto-generated internal Type GetType(BinaryAssemblyInfo assemblyInfo, String name) { Type objectType = null; if (((previousName != null) && (previousName.Length == name.Length) && (previousName.Equals(name))) && ((previousAssemblyString != null) && (previousAssemblyString.Length == assemblyInfo.assemblyString.Length) &&(previousAssemblyString.Equals(assemblyInfo.assemblyString)))) { objectType = previousType; //Console.WriteLine("Hit "+(++hit)+" "+objectType); } else { objectType = Bind(assemblyInfo.assemblyString, name); if ((object)objectType == null) { if (bSimpleAssembly) { ObjectReader.GetSimplyNamedTypeFromAssembly(assemblyInfo.GetAssembly(), name, ref objectType); } else { objectType = FormatterServices.GetTypeFromAssembly(assemblyInfo.GetAssembly(), name); } } previousAssemblyString = assemblyInfo.assemblyString; previousName = name; previousType = objectType; } //Console.WriteLine("name "+name+" assembly "+assemblyInfo.assemblyString+" objectType "+objectType); return objectType; }
internal Type GetType(BinaryAssemblyInfo assemblyInfo, string name) { Type objectType = null; if (((_previousName != null) && (_previousName.Length == name.Length) && (_previousName.Equals(name))) && ((_previousAssemblyString != null) && (_previousAssemblyString.Length == assemblyInfo._assemblyString.Length) && (_previousAssemblyString.Equals(assemblyInfo._assemblyString)))) { objectType = _previousType; } else { objectType = Bind(assemblyInfo._assemblyString, name); if (objectType == null) { Assembly sourceAssembly = assemblyInfo.GetAssembly(); if (_isSimpleAssembly) { GetSimplyNamedTypeFromAssembly(sourceAssembly, name, ref objectType); } else { objectType = FormatterServices.GetTypeFromAssembly(sourceAssembly, name); } // here let us do the security check if (objectType != null) { CheckTypeForwardedTo(sourceAssembly, objectType.GetTypeInfo().Assembly, objectType); } } _previousAssemblyString = assemblyInfo._assemblyString; _previousName = name; _previousType = objectType; } return objectType; }