Loading Assemblies Dynamically with Load() and LoadWithPartialName()

image_pdfimage_print


   
 

using System;
using System.Reflection;
using System.IO;
   
public class MainClass
{
    static void Main(string[] args)
    {
        AssemblyLoader("System.Xml, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", false);
        AssemblyLoader("System.Xml", false);
        AssemblyLoader("System.Drawing", true);
    }

    public static void AssemblyLoader(string LoadedAssemblyName, bool PartialName)
    {
        try
        {
            Assembly LoadedAssembly;
            Console.WriteLine("| Loading Assembly {0}", LoadedAssemblyName);
            if(PartialName == true)
                LoadedAssembly = Assembly.LoadWithPartialName(LoadedAssemblyName);
            else
                LoadedAssembly = Assembly.Load(LoadedAssemblyName);

            Console.WriteLine("Full Name: {0}", LoadedAssembly.FullName);
            Console.WriteLine("Location: {0}", LoadedAssembly.Location);
            Console.WriteLine("Code Base: {0}", LoadedAssembly.CodeBase);
            Console.WriteLine("Escaped Code Base: {0}", LoadedAssembly.EscapedCodeBase);
            Console.WriteLine("Loaded from GAC: {0}", LoadedAssembly.GlobalAssemblyCache);
        } catch(FileNotFoundException) {
            Console.WriteLine("EXCEPTION: Cannot load assembly.");
        }
    }

}
           
         
     


Working with an Assembly Entry Point

image_pdfimage_print


   
 

using System;
using System.Reflection;
   
public class MainClass
{
    static void Main(string[] args)
    {
        Assembly EntryAssembly = Assembly.GetEntryAssembly();
        if(EntryAssembly.EntryPoint == null){
            Console.WriteLine("The assembly has no entry point.");
        }else{
            Console.WriteLine(EntryAssembly.EntryPoint.ToString());
        }
    }
}
           
         
     


Load assembly from namespace System.Xml

image_pdfimage_print
   
  


using System;
using System.Reflection;
using System.Globalization;

    class MainClass
    {
        public static void ListAssemblies()
        {
            Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); 
            foreach (Assembly a in assemblies)
            {
                Console.WriteLine(a.GetName());
            }
        }

        public static void Main()
        {
            ListAssemblies();
            string name1 = "System.Data, Version=2.0.0.0," +"Culture=neutral, PublicKeyToken=b77a5c561934e089";
            Assembly a1 = Assembly.Load(name1);

            AssemblyName name2 = new AssemblyName();
            name2.Name = "System.Xml";
            name2.Version = new Version(2, 0, 0, 0);
            name2.CultureInfo = new CultureInfo("");    //Neutral culture.
            name2.SetPublicKeyToken(new byte[] {0xb7, 0x7a, 0x5c, 0x56, 0x19, 0x34, 0xe0, 0x89});
            Assembly a2 = Assembly.Load(name2);

            Assembly a3 = Assembly.Load("SomeAssembly");

            Assembly a4 = Assembly.LoadFrom(@"c:sharedMySharedAssembly.dll");

            Console.WriteLine("

**** AFTER ****");
            ListAssemblies();

        }
    }

   
     


GetReferencedAssemblies

image_pdfimage_print
   
  
using System;
using System.Reflection;

public class MainClass
{
    static void Main()
    {
    Assembly EntryAssembly;

    EntryAssembly = Assembly.GetEntryAssembly();
    foreach(AssemblyName Name in EntryAssembly.GetReferencedAssemblies())
      Console.WriteLine("Name: {0}", Name.ToString());
    }
}

   
     


Location of Assembly

image_pdfimage_print
   
  

using System;
using System.Reflection;
public class MainClass {
    static void Main() {
        Assembly EntryAssembly;

        EntryAssembly = Assembly.GetEntryAssembly();
        Console.WriteLine("Location: {0}", EntryAssembly.Location);
        Console.WriteLine("Code Base: {0}", EntryAssembly.CodeBase);
        Console.WriteLine("Escaped Code Base: {0}", EntryAssembly.EscapedCodeBase);
        Console.WriteLine("Loaded from GAC: {0}", EntryAssembly.GlobalAssemblyCache);
    }
}

   
     


Set AssemblyTitle, AssemblyDescription, AssemblyConfiguration, AssemblyCompany, AssemblyProduct

image_pdfimage_print
   
  

using System.Reflection;
using System.Windows.Forms;
   
[assembly: AssemblyTitle("title")]
[assembly: AssemblyDescription("code.")]
[assembly: AssemblyConfiguration("Retail")]
[assembly: AssemblyCompany("Inc.")]
[assembly: AssemblyProduct("C#")]
[assembly: AssemblyCopyright("Inc.")]
[assembly: AssemblyVersion("1.0.*")]
   
public class SimpleHelloWorld : Form
{
    public static void Main()
    {
        Application.Run(new SimpleHelloWorld());
    }
   
    public SimpleHelloWorld()
    {
        Text = "Hello, WindowsForms!";
    }
}