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