GetAssembly() private method

private GetAssembly ( ) : Assembly
return System.Reflection.Assembly
示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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;
 }
示例#5
0
        //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; 
        }
示例#7
0
        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;
        }