Beispiel #1
0
 internal AssemblyLoader(TypeProvider typeProvider, string filePath)
 {
     this.isLocalAssembly = false;
     this.typeProvider    = typeProvider;
     if (!File.Exists(filePath))
     {
         throw new FileNotFoundException();
     }
     System.Reflection.AssemblyName assemblyName = System.Reflection.AssemblyName.GetAssemblyName(filePath);
     if (assemblyName != null)
     {
         ITypeResolutionService service = (ITypeResolutionService)typeProvider.GetService(typeof(ITypeResolutionService));
         if (service != null)
         {
             try
             {
                 this.assembly = service.GetAssembly(assemblyName);
                 if ((((this.assembly == null) && (assemblyName.GetPublicKeyToken() != null)) && ((assemblyName.GetPublicKeyToken().GetLength(0) == 0) && (assemblyName.GetPublicKey() != null))) && (assemblyName.GetPublicKey().GetLength(0) == 0))
                 {
                     System.Reflection.AssemblyName name = (System.Reflection.AssemblyName)assemblyName.Clone();
                     name.SetPublicKey(null);
                     name.SetPublicKeyToken(null);
                     this.assembly = service.GetAssembly(name);
                 }
             }
             catch
             {
             }
         }
         if (this.assembly == null)
         {
             try
             {
                 if (MultiTargetingInfo.MultiTargetingUtilities.IsFrameworkReferenceAssembly(filePath))
                 {
                     this.assembly = System.Reflection.Assembly.Load(assemblyName.FullName);
                 }
                 else
                 {
                     this.assembly = System.Reflection.Assembly.Load(assemblyName);
                 }
             }
             catch
             {
             }
         }
     }
     if (this.assembly == null)
     {
         this.assembly = System.Reflection.Assembly.LoadFrom(filePath);
     }
 }
 internal AssemblyLoader(TypeProvider typeProvider, string filePath)
 {
     this.isLocalAssembly = false;
     this.typeProvider = typeProvider;
     if (!File.Exists(filePath))
     {
         throw new FileNotFoundException();
     }
     System.Reflection.AssemblyName assemblyName = System.Reflection.AssemblyName.GetAssemblyName(filePath);
     if (assemblyName != null)
     {
         ITypeResolutionService service = (ITypeResolutionService) typeProvider.GetService(typeof(ITypeResolutionService));
         if (service != null)
         {
             try
             {
                 this.assembly = service.GetAssembly(assemblyName);
                 if ((((this.assembly == null) && (assemblyName.GetPublicKeyToken() != null)) && ((assemblyName.GetPublicKeyToken().GetLength(0) == 0) && (assemblyName.GetPublicKey() != null))) && (assemblyName.GetPublicKey().GetLength(0) == 0))
                 {
                     System.Reflection.AssemblyName name = (System.Reflection.AssemblyName) assemblyName.Clone();
                     name.SetPublicKey(null);
                     name.SetPublicKeyToken(null);
                     this.assembly = service.GetAssembly(name);
                 }
             }
             catch
             {
             }
         }
         if (this.assembly == null)
         {
             try
             {
                 if (MultiTargetingInfo.MultiTargetingUtilities.IsFrameworkReferenceAssembly(filePath))
                 {
                     this.assembly = System.Reflection.Assembly.Load(assemblyName.FullName);
                 }
                 else
                 {
                     this.assembly = System.Reflection.Assembly.Load(assemblyName);
                 }
             }
             catch
             {
             }
         }
     }
     if (this.assembly == null)
     {
         this.assembly = System.Reflection.Assembly.LoadFrom(filePath);
     }
 }
        internal AssemblyLoader(TypeProvider typeProvider, string filePath)
        {
            this.isLocalAssembly = false;
            this.typeProvider = typeProvider;
            if (File.Exists(filePath))
            {
                AssemblyName asmName = AssemblyName.GetAssemblyName(filePath);
                if (asmName != null)
                {
                    // Try loading the assembly using type resolution service first.
                    ITypeResolutionService trs = (ITypeResolutionService)typeProvider.GetService(typeof(ITypeResolutionService));
                    if (trs != null)
                    {
                        try
                        {
                            this.assembly = trs.GetAssembly(asmName);
                            // 

                            if (this.assembly == null && asmName.GetPublicKeyToken() != null && (asmName.GetPublicKeyToken().GetLength(0) == 0) && asmName.GetPublicKey() != null && (asmName.GetPublicKey().GetLength(0) == 0))
                            {
                                AssemblyName partialName = (AssemblyName)asmName.Clone();
                                partialName.SetPublicKey(null);
                                partialName.SetPublicKeyToken(null);
                                this.assembly = trs.GetAssembly(partialName);
                            }
                        }
                        catch
                        {
                            // Eat up any exceptions!
                        }
                    }

                    // If type resolution service wasn't available or it failed use Assembly.Load
                    if (this.assembly == null)
                    {
                        try
                        {
                            if (MultiTargetingInfo.MultiTargetingUtilities.IsFrameworkReferenceAssembly(filePath))
                            {
                                this.assembly = Assembly.Load(asmName.FullName);
                            }
                            else
                            {
                                this.assembly = Assembly.Load(asmName);
                            }
                        }
                        catch
                        {
                            // Eat up any exceptions!
                        }
                    }
                }
                // If Assembly.Load also failed, use Assembly.LoadFrom
                if (this.assembly == null)
                {
                    this.assembly = Assembly.LoadFrom(filePath);
                }
            }
            else
            {
                // TypeProvider will handle this and report the error
                throw new FileNotFoundException();
            }
        }
Beispiel #4
0
        internal AssemblyLoader(TypeProvider typeProvider, string filePath)
        {
            this.isLocalAssembly = false;
            this.typeProvider    = typeProvider;
            if (File.Exists(filePath))
            {
                AssemblyName asmName = AssemblyName.GetAssemblyName(filePath);
                if (asmName != null)
                {
                    // Try loading the assembly using type resolution service first.
                    ITypeResolutionService trs = (ITypeResolutionService)typeProvider.GetService(typeof(ITypeResolutionService));
                    if (trs != null)
                    {
                        try
                        {
                            this.assembly = trs.GetAssembly(asmName);
                            //

                            if (this.assembly == null && asmName.GetPublicKeyToken() != null && (asmName.GetPublicKeyToken().GetLength(0) == 0) && asmName.GetPublicKey() != null && (asmName.GetPublicKey().GetLength(0) == 0))
                            {
                                AssemblyName partialName = (AssemblyName)asmName.Clone();
                                partialName.SetPublicKey(null);
                                partialName.SetPublicKeyToken(null);
                                this.assembly = trs.GetAssembly(partialName);
                            }
                        }
                        catch
                        {
                            // Eat up any exceptions!
                        }
                    }

                    // If type resolution service wasn't available or it failed use Assembly.Load
                    if (this.assembly == null)
                    {
                        try
                        {
                            if (MultiTargetingInfo.MultiTargetingUtilities.IsFrameworkReferenceAssembly(filePath))
                            {
                                this.assembly = Assembly.Load(asmName.FullName);
                            }
                            else
                            {
                                this.assembly = Assembly.Load(asmName);
                            }
                        }
                        catch
                        {
                            // Eat up any exceptions!
                        }
                    }
                }
                // If Assembly.Load also failed, use Assembly.LoadFrom
                if (this.assembly == null)
                {
                    this.assembly = Assembly.LoadFrom(filePath);
                }
            }
            else
            {
                // TypeProvider will handle this and report the error
                throw new FileNotFoundException();
            }
        }