<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FReflection%2FAssembly</id>
		<title>Csharp/C Sharp/Reflection/Assembly - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FReflection%2FAssembly"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Reflection/Assembly&amp;action=history"/>
		<updated>2026-04-29T21:21:52Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/Reflection/Assembly&amp;diff=380&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Reflection/Assembly&amp;diff=380&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:18Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/Reflection/Assembly&amp;diff=381&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Reflection/Assembly&amp;diff=381&amp;oldid=prev"/>
				<updated>2010-05-26T11:38:15Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==AssemblyCulture AssemblyVersion==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
[assembly:AssemblyCulture(&amp;quot;&amp;quot;)]&lt;br /&gt;
[assembly:AssemblyVersion(&amp;quot;1.1.0.5&amp;quot;)]&lt;br /&gt;
namespace MainClass&lt;br /&gt;
{&lt;br /&gt;
    class MainClass&lt;br /&gt;
    {&lt;br /&gt;
        public static void Main()&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;\nMain method complete. Press Enter.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AssemblyName: Name, Version, CultureInfo, SetPublicKeyToken==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.Globalization;&lt;br /&gt;
    class MainClass&lt;br /&gt;
    {&lt;br /&gt;
        public static void ListAssemblies()&lt;br /&gt;
        {&lt;br /&gt;
            Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); &lt;br /&gt;
            foreach (Assembly a in assemblies)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(a.GetName());&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        public static void Main()&lt;br /&gt;
        {&lt;br /&gt;
            ListAssemblies();&lt;br /&gt;
            string name1 = &amp;quot;System.Data, Version=2.0.0.0,&amp;quot; +&amp;quot;Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;;&lt;br /&gt;
            Assembly a1 = Assembly.Load(name1);&lt;br /&gt;
            AssemblyName name2 = new AssemblyName();&lt;br /&gt;
            name2.Name = &amp;quot;System.Xml&amp;quot;;&lt;br /&gt;
            name2.Version = new Version(2, 0, 0, 0);&lt;br /&gt;
            name2.CultureInfo = new CultureInfo(&amp;quot;&amp;quot;);    //Neutral culture.&lt;br /&gt;
            name2.SetPublicKeyToken(new byte[] {0xb7, 0x7a, 0x5c, 0x56, 0x19, 0x34, 0xe0, 0x89});&lt;br /&gt;
            Assembly a2 = Assembly.Load(name2);&lt;br /&gt;
            Assembly a3 = Assembly.Load(&amp;quot;SomeAssembly&amp;quot;);&lt;br /&gt;
            Assembly a4 = Assembly.LoadFrom(@&amp;quot;c:\shared\MySharedAssembly.dll&amp;quot;);&lt;br /&gt;
            Console.WriteLine(&amp;quot;\n\n**** AFTER ****&amp;quot;);&lt;br /&gt;
            ListAssemblies();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Create assembly==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.Reflection.Emit;&lt;br /&gt;
class CodeGenerator {       &lt;br /&gt;
    Type t;&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
       CodeGenerator codeGen = new CodeGenerator();&lt;br /&gt;
       Type t = codeGen.T;&lt;br /&gt;
       if (t != null) {&lt;br /&gt;
          object o = Activator.CreateInstance(t);&lt;br /&gt;
          MethodInfo helloWorld = t.GetMethod(&amp;quot;HelloWorld&amp;quot;);&lt;br /&gt;
          if (helloWorld != null) {&lt;br /&gt;
             // Run the HelloWorld Method&lt;br /&gt;
             helloWorld.Invoke(o, null);&lt;br /&gt;
          } else {&lt;br /&gt;
             Console.WriteLine(&amp;quot;Could not retrieve MethodInfo&amp;quot;);&lt;br /&gt;
          }&lt;br /&gt;
       } else {&lt;br /&gt;
             Console.WriteLine(&amp;quot;Could not access the Type&amp;quot;);&lt;br /&gt;
       }&lt;br /&gt;
    } &lt;br /&gt;
    public CodeGenerator() {&lt;br /&gt;
       AppDomain currentDomain = AppDomain.CurrentDomain;&lt;br /&gt;
       AssemblyName assemName = new AssemblyName();&lt;br /&gt;
       assemName.Name = &amp;quot;MyAssembly&amp;quot;;&lt;br /&gt;
       AssemblyBuilder assemBuilder = currentDomain.DefineDynamicAssembly(assemName, AssemblyBuilderAccess.Run);&lt;br /&gt;
       ModuleBuilder moduleBuilder = assemBuilder.DefineDynamicModule(&amp;quot;MyModule&amp;quot;);&lt;br /&gt;
       TypeBuilder typeBuilder = moduleBuilder.DefineType(&amp;quot;MyClass&amp;quot;,TypeAttributes.Public);&lt;br /&gt;
       MethodBuilder methodBuilder = typeBuilder.DefineMethod(&amp;quot;HelloWorld&amp;quot;, MethodAttributes.Public,null,null);&lt;br /&gt;
       ILGenerator msilG = methodBuilder.GetILGenerator();&lt;br /&gt;
       msilG.EmitWriteLine(&amp;quot;www.nfex.ru&amp;quot;);&lt;br /&gt;
       msilG.Emit(OpCodes.Ret);&lt;br /&gt;
       t = typeBuilder.CreateType();&lt;br /&gt;
   }&lt;br /&gt;
   public Type T {&lt;br /&gt;
       get { &lt;br /&gt;
         return this.t;&lt;br /&gt;
       }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CurrentDomain, GetAssemblies==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.Globalization;&lt;br /&gt;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        ListAssemblies();&lt;br /&gt;
        string name1 = &amp;quot;System.Data, Version=2.0.0.0,&amp;quot; +&amp;quot;Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;;&lt;br /&gt;
        Assembly a1 = Assembly.Load(name1);&lt;br /&gt;
        AssemblyName name2 = new AssemblyName();&lt;br /&gt;
        name2.Name = &amp;quot;System.Xml&amp;quot;;&lt;br /&gt;
        name2.Version = new Version(2, 0, 0, 0);&lt;br /&gt;
        name2.CultureInfo = new CultureInfo(&amp;quot;&amp;quot;);    //Neutral culture.&lt;br /&gt;
        name2.SetPublicKeyToken(new byte[] {0xb7, 0x7a, 0x5c, 0x56, 0x19, 0x34, 0xe0, 0x89});&lt;br /&gt;
        Assembly a2 = Assembly.Load(name2);&lt;br /&gt;
        Assembly a3 = Assembly.Load(&amp;quot;SomeAssembly&amp;quot;);&lt;br /&gt;
        Assembly a4 = Assembly.LoadFrom(@&amp;quot;c:\shared\MySharedAssembly.dll&amp;quot;);&lt;br /&gt;
        Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); &lt;br /&gt;
        foreach (Assembly a in assemblies)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(a.GetName());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Dynamically invoking methods from classes in an assembly.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
interface IMyInterface {&lt;br /&gt;
    void PrintAString(string s);&lt;br /&gt;
    void PrintAnInteger(int i);&lt;br /&gt;
    void PrintSomeNumbers(string desc, int i, double d);&lt;br /&gt;
    int GetANumber(string s);&lt;br /&gt;
}&lt;br /&gt;
public class MyClass : IMyInterface {&lt;br /&gt;
    public MyClass() {&lt;br /&gt;
    }&lt;br /&gt;
    public void PrintAString(string s) {&lt;br /&gt;
        Console.WriteLine(&amp;quot;PrintAString: {0}&amp;quot;, s);&lt;br /&gt;
    }&lt;br /&gt;
    public void PrintAnInteger(int i) {&lt;br /&gt;
        Console.WriteLine(&amp;quot;PrintAnInteger: {0}&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    public void PrintSomeNumbers(string desc, int i, double d) {&lt;br /&gt;
        Console.WriteLine(&amp;quot;PrintSomeNumbers String: {0}&amp;quot;, desc);&lt;br /&gt;
        Console.WriteLine(&amp;quot;Integer: {0}&amp;quot;, i);&lt;br /&gt;
        Console.WriteLine(&amp;quot;Double: {0}&amp;quot;, d);&lt;br /&gt;
    }&lt;br /&gt;
    public int GetANumber(string s) {&lt;br /&gt;
        Console.WriteLine(&amp;quot;GetANumber: {0}&amp;quot;, s);&lt;br /&gt;
        return 99;&lt;br /&gt;
    }&lt;br /&gt;
    public int DoItAll(string s, int i, double d) {&lt;br /&gt;
        IMyInterface mi = (IMyInterface)this;&lt;br /&gt;
        mi.PrintSomeNumbers(s, i, d);&lt;br /&gt;
        return mi.GetANumber(s);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void DoDynamicInvocation(string assembly) {&lt;br /&gt;
        Assembly a = Assembly.LoadFrom(assembly);&lt;br /&gt;
        foreach (Type t in a.GetTypes()) {&lt;br /&gt;
            if (t.IsClass == false)&lt;br /&gt;
                continue;&lt;br /&gt;
            if (t.GetInterface(&amp;quot;IMyInterface&amp;quot;) == null)&lt;br /&gt;
                continue;&lt;br /&gt;
            Console.WriteLine(&amp;quot;Creating instance of class {0}&amp;quot;, t.FullName);&lt;br /&gt;
            object obj = Activator.CreateInstance(t);&lt;br /&gt;
            object[] args = { &amp;quot;Dynamic&amp;quot;, 1, 99.6 };&lt;br /&gt;
            object result;&lt;br /&gt;
            result = t.InvokeMember(&amp;quot;DoItAll&amp;quot;,BindingFlags.Default|BindingFlags.InvokeMethod,null,obj,args);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Result of dynamic call: {0}&amp;quot;, result);&lt;br /&gt;
            object[] args2 = { 12 };&lt;br /&gt;
            t.InvokeMember(&amp;quot;PrintAnInteger&amp;quot;,BindingFlags.Default | BindingFlags.InvokeMethod,null,obj,args2);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public static void Main(string[] args) {&lt;br /&gt;
        MyClass dmi = new MyClass();&lt;br /&gt;
        dmi.PrintSomeNumbers(&amp;quot;PrintMe&amp;quot;, 1, 1.9);&lt;br /&gt;
        int i = dmi.GetANumber(&amp;quot;GiveMeOne&amp;quot;);&lt;br /&gt;
        Console.WriteLine(&amp;quot;I = {0}&amp;quot;, i);&lt;br /&gt;
        DoDynamicInvocation(args[0]);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examining Location Information==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
   &lt;br /&gt;
public class MainClass&lt;br /&gt;
{&lt;br /&gt;
    static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        Assembly EntryAssembly;&lt;br /&gt;
   &lt;br /&gt;
        EntryAssembly = Assembly.GetEntryAssembly();&lt;br /&gt;
        Console.WriteLine(&amp;quot;Location: {0}&amp;quot;, EntryAssembly.Location);&lt;br /&gt;
        Console.WriteLine(&amp;quot;Code Base: {0}&amp;quot;, EntryAssembly.CodeBase);&lt;br /&gt;
        Console.WriteLine(&amp;quot;Escaped Code Base: {0}&amp;quot;, EntryAssembly.EscapedCodeBase);&lt;br /&gt;
        Console.WriteLine(&amp;quot;Loaded from GAC: {0}&amp;quot;, EntryAssembly.GlobalAssemblyCache);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Find Attribytes from assembly name==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
public class FindAttributes {&lt;br /&gt;
  static void Main(string[] args) {&lt;br /&gt;
      String assemblyName = &amp;quot;test.exe&amp;quot; ;&lt;br /&gt;
      try&lt;br /&gt;
      {&lt;br /&gt;
        Assembly  a = Assembly.LoadFrom ( assemblyName ) ;&lt;br /&gt;
        object[]  attributes = a.GetCustomAttributes( true ) ;&lt;br /&gt;
        if ( attributes.Length &amp;gt; 0 ) {&lt;br /&gt;
          Console.WriteLine ( &amp;quot;Assembly attributes for &amp;quot;{0}&amp;quot;...&amp;quot; , assemblyName ) ;&lt;br /&gt;
          foreach ( object o in attributes )&lt;br /&gt;
            Console.WriteLine ( &amp;quot;  {0}&amp;quot; , o.ToString ( ) ) ;&lt;br /&gt;
        }&lt;br /&gt;
        else{&lt;br /&gt;
          Console.WriteLine ( &amp;quot;Assembly {0} contains no Attributes.&amp;quot; , assemblyName ) ;&lt;br /&gt;
        } &lt;br /&gt;
      } catch ( Exception ex ) {&lt;br /&gt;
        Console.WriteLine ( ex.ToString ( ) ) ;&lt;br /&gt;
      }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Finding and Creating Assembly Types==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
   &lt;br /&gt;
public class MainClass&lt;br /&gt;
{&lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
        Assembly XMLAssembly;&lt;br /&gt;
        Type[] XMLTypes;&lt;br /&gt;
   &lt;br /&gt;
        XMLAssembly = Assembly.Load(&amp;quot;System.Xml, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;);&lt;br /&gt;
        XMLTypes = XMLAssembly.GetExportedTypes();&lt;br /&gt;
        foreach(Type XMLType in XMLTypes) {&lt;br /&gt;
            object NewObject;&lt;br /&gt;
            try {&lt;br /&gt;
                Console.Write(XMLType.ToString());&lt;br /&gt;
                NewObject = XMLAssembly.CreateInstance(XMLType.ToString());&lt;br /&gt;
                if(NewObject != null)&lt;br /&gt;
                    Console.WriteLine(&amp;quot; - Creation successful&amp;quot;);&lt;br /&gt;
                else&lt;br /&gt;
                    Console.WriteLine(&amp;quot; - CREATION ERROR&amp;quot;);&lt;br /&gt;
            } catch(Exception e) {&lt;br /&gt;
                Console.WriteLine(&amp;quot; - EXCEPTION: {0}&amp;quot;, e.Message);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Get current application domain==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
    using System;&lt;br /&gt;
  using System.Reflection;&lt;br /&gt;
  using System.Windows.Forms;&lt;br /&gt;
    public class MyAppDomain&lt;br /&gt;
    {&lt;br /&gt;
        public static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
      AppDomain ad = AppDomain.CurrentDomain;&lt;br /&gt;
      Assembly[] loadedAssemblies = ad.GetAssemblies();&lt;br /&gt;
      &lt;br /&gt;
      Console.WriteLine(&amp;quot;Here are the assemblies loaded in this appdomain\n&amp;quot;);&lt;br /&gt;
      foreach(Assembly a in loadedAssemblies)&lt;br /&gt;
      {&lt;br /&gt;
        Console.WriteLine(a.FullName);&lt;br /&gt;
      }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GetReferencedAssemblies==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
public class MainClass&lt;br /&gt;
{&lt;br /&gt;
    static void Main()&lt;br /&gt;
    {&lt;br /&gt;
    Assembly EntryAssembly;&lt;br /&gt;
    EntryAssembly = Assembly.GetEntryAssembly();&lt;br /&gt;
    foreach(AssemblyName Name in EntryAssembly.GetReferencedAssemblies())&lt;br /&gt;
      Console.WriteLine(&amp;quot;Name: {0}&amp;quot;, Name.ToString());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==List All Members from an Assembly==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
&lt;br /&gt;
public class Test&lt;br /&gt;
{&lt;br /&gt;
    public static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
    Assembly a = null;&lt;br /&gt;
        AssemblyName asmName;&lt;br /&gt;
      asmName = new AssemblyName();&lt;br /&gt;
      asmName.Name = &amp;quot;Test&amp;quot;;&lt;br /&gt;
      Version v = new Version(&amp;quot;1.0.454.30104&amp;quot;);&lt;br /&gt;
      asmName.Version = v;&lt;br /&gt;
 &lt;br /&gt;
        a = Assembly.Load(asmName);&lt;br /&gt;
    Type test = a.GetType(&amp;quot;Test&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
    Console.WriteLine(&amp;quot;Listing all members for {0}&amp;quot;, test);&lt;br /&gt;
    MemberInfo[] mi = test.GetMembers();&lt;br /&gt;
    foreach(MemberInfo m in mi)&lt;br /&gt;
      Console.WriteLine(&amp;quot;Type {0}: {1} &amp;quot;,&lt;br /&gt;
          m.MemberType.ToString(), m);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==List All Types from an Assembly==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
public class Test&lt;br /&gt;
{&lt;br /&gt;
    public static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
    Assembly a = null;&lt;br /&gt;
        AssemblyName asmName;&lt;br /&gt;
      asmName = new AssemblyName();&lt;br /&gt;
      asmName.Name = &amp;quot;Test&amp;quot;;// Test.exe&lt;br /&gt;
      Version v = new Version(&amp;quot;1.0.454.30104&amp;quot;);&lt;br /&gt;
      asmName.Version = v;&lt;br /&gt;
 &lt;br /&gt;
        a = Assembly.Load(asmName);&lt;br /&gt;
    Console.WriteLine(&amp;quot;Listing all types in {0}&amp;quot;, a.FullName);&lt;br /&gt;
    Type[] types = a.GetTypes();&lt;br /&gt;
    foreach(Type t in types)&lt;br /&gt;
      Console.WriteLine(&amp;quot;Type: {0}&amp;quot;, t);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Load assembly from namespace System.Xml==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.Globalization;&lt;br /&gt;
    class MainClass&lt;br /&gt;
    {&lt;br /&gt;
        public static void ListAssemblies()&lt;br /&gt;
        {&lt;br /&gt;
            Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); &lt;br /&gt;
            foreach (Assembly a in assemblies)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(a.GetName());&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        public static void Main()&lt;br /&gt;
        {&lt;br /&gt;
            ListAssemblies();&lt;br /&gt;
            string name1 = &amp;quot;System.Data, Version=2.0.0.0,&amp;quot; +&amp;quot;Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;;&lt;br /&gt;
            Assembly a1 = Assembly.Load(name1);&lt;br /&gt;
            AssemblyName name2 = new AssemblyName();&lt;br /&gt;
            name2.Name = &amp;quot;System.Xml&amp;quot;;&lt;br /&gt;
            name2.Version = new Version(2, 0, 0, 0);&lt;br /&gt;
            name2.CultureInfo = new CultureInfo(&amp;quot;&amp;quot;);    //Neutral culture.&lt;br /&gt;
            name2.SetPublicKeyToken(new byte[] {0xb7, 0x7a, 0x5c, 0x56, 0x19, 0x34, 0xe0, 0x89});&lt;br /&gt;
            Assembly a2 = Assembly.Load(name2);&lt;br /&gt;
            Assembly a3 = Assembly.Load(&amp;quot;SomeAssembly&amp;quot;);&lt;br /&gt;
            Assembly a4 = Assembly.LoadFrom(@&amp;quot;c:\shared\MySharedAssembly.dll&amp;quot;);&lt;br /&gt;
            Console.WriteLine(&amp;quot;\n\n**** AFTER ****&amp;quot;);&lt;br /&gt;
            ListAssemblies();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Loading Assemblies Dynamically with Load() and LoadWithPartialName()==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.IO;&lt;br /&gt;
   &lt;br /&gt;
public class MainClass&lt;br /&gt;
{&lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
        AssemblyLoader(&amp;quot;System.Xml, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;, false);&lt;br /&gt;
        AssemblyLoader(&amp;quot;System.Xml&amp;quot;, false);&lt;br /&gt;
        AssemblyLoader(&amp;quot;System.Drawing&amp;quot;, true);&lt;br /&gt;
    }&lt;br /&gt;
    public static void AssemblyLoader(string LoadedAssemblyName, bool PartialName)&lt;br /&gt;
    {&lt;br /&gt;
        try&lt;br /&gt;
        {&lt;br /&gt;
            Assembly LoadedAssembly;&lt;br /&gt;
            Console.WriteLine(&amp;quot;| Loading Assembly {0}&amp;quot;, LoadedAssemblyName);&lt;br /&gt;
            if(PartialName == true)&lt;br /&gt;
                LoadedAssembly = Assembly.LoadWithPartialName(LoadedAssemblyName);&lt;br /&gt;
            else&lt;br /&gt;
                LoadedAssembly = Assembly.Load(LoadedAssemblyName);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Full Name: {0}&amp;quot;, LoadedAssembly.FullName);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Location: {0}&amp;quot;, LoadedAssembly.Location);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Code Base: {0}&amp;quot;, LoadedAssembly.CodeBase);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Escaped Code Base: {0}&amp;quot;, LoadedAssembly.EscapedCodeBase);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Loaded from GAC: {0}&amp;quot;, LoadedAssembly.GlobalAssemblyCache);&lt;br /&gt;
        } catch(FileNotFoundException) {&lt;br /&gt;
            Console.WriteLine(&amp;quot;EXCEPTION: Cannot load assembly.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Location of Assembly==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    static void Main() {&lt;br /&gt;
        Assembly EntryAssembly;&lt;br /&gt;
        EntryAssembly = Assembly.GetEntryAssembly();&lt;br /&gt;
        Console.WriteLine(&amp;quot;Location: {0}&amp;quot;, EntryAssembly.Location);&lt;br /&gt;
        Console.WriteLine(&amp;quot;Code Base: {0}&amp;quot;, EntryAssembly.CodeBase);&lt;br /&gt;
        Console.WriteLine(&amp;quot;Escaped Code Base: {0}&amp;quot;, EntryAssembly.EscapedCodeBase);&lt;br /&gt;
        Console.WriteLine(&amp;quot;Loaded from GAC: {0}&amp;quot;, EntryAssembly.GlobalAssemblyCache);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==new AssemblyName()==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
    public static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
        AssemblyName assembly1 = new AssemblyName(&amp;quot;com.microsoft.crypto, Culture=en, PublicKeyToken=a5d015c7d5a0b012, Version=1.0.0.0&amp;quot;); &lt;br /&gt;
        Dictionary&amp;lt;string, AssemblyName&amp;gt; assemblyDictionary = new Dictionary&amp;lt;string, AssemblyName&amp;gt;();&lt;br /&gt;
        assemblyDictionary.Add(&amp;quot;Crypto&amp;quot;, assembly1);&lt;br /&gt;
        AssemblyName ass1 = assemblyDictionary[&amp;quot;Crypto&amp;quot;];&lt;br /&gt;
        Console.WriteLine(&amp;quot;Got AssemblyName from dictionary: {0}&amp;quot;, ass1);&lt;br /&gt;
        List&amp;lt;AssemblyName&amp;gt; assemblyList = new List&amp;lt;AssemblyName&amp;gt;();&lt;br /&gt;
        assemblyList.Add(assembly1);&lt;br /&gt;
        AssemblyName ass2 = assemblyList[0];&lt;br /&gt;
        Console.WriteLine(&amp;quot;\nFound AssemblyName in list: {0}&amp;quot;, ass1);&lt;br /&gt;
        Stack&amp;lt;AssemblyName&amp;gt; assemblyStack = new Stack&amp;lt;AssemblyName&amp;gt;();&lt;br /&gt;
        assemblyStack.Push(assembly1);&lt;br /&gt;
        AssemblyName ass3 = assemblyStack.Pop();&lt;br /&gt;
        Console.WriteLine(&amp;quot;\nPopped AssemblyName from stack: {0}&amp;quot;, ass1);&lt;br /&gt;
     }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Retrieving a List of Referenced Assemblies==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
   &lt;br /&gt;
public class MainClass&lt;br /&gt;
{&lt;br /&gt;
    static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        Assembly EntryAssembly;&lt;br /&gt;
   &lt;br /&gt;
        EntryAssembly = Assembly.GetEntryAssembly();&lt;br /&gt;
        foreach(AssemblyName Name in EntryAssembly.GetReferencedAssemblies()){&lt;br /&gt;
            Console.WriteLine(&amp;quot;Name: {0}&amp;quot;, Name.ToString());&lt;br /&gt;
        }    &lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Set AssemblyTitle, AssemblyDescription, AssemblyConfiguration, AssemblyCompany, AssemblyProduct==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
   &lt;br /&gt;
[assembly: AssemblyTitle(&amp;quot;title&amp;quot;)]&lt;br /&gt;
[assembly: AssemblyDescription(&amp;quot;code.&amp;quot;)]&lt;br /&gt;
[assembly: AssemblyConfiguration(&amp;quot;Retail&amp;quot;)]&lt;br /&gt;
[assembly: AssemblyCompany(&amp;quot;Inc.&amp;quot;)]&lt;br /&gt;
[assembly: AssemblyProduct(&amp;quot;C#&amp;quot;)]&lt;br /&gt;
[assembly: AssemblyCopyright(&amp;quot;Inc.&amp;quot;)]&lt;br /&gt;
[assembly: AssemblyVersion(&amp;quot;1.0.*&amp;quot;)]&lt;br /&gt;
   &lt;br /&gt;
public class SimpleHelloWorld : Form&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        Application.Run(new SimpleHelloWorld());&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    public SimpleHelloWorld()&lt;br /&gt;
    {&lt;br /&gt;
        Text = &amp;quot;Hello, WindowsForms!&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Simple Windows Form Application with Version Information==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
   &lt;br /&gt;
[assembly: AssemblyTitle(&amp;quot;This is the title&amp;quot;)]&lt;br /&gt;
[assembly: AssemblyDescription(&amp;quot;This is the description&amp;quot;)]&lt;br /&gt;
[assembly: AssemblyConfiguration(&amp;quot;Here is for the configuration&amp;quot;)]&lt;br /&gt;
[assembly: AssemblyCompany(&amp;quot;Demo 2s, Inc.&amp;quot;)]&lt;br /&gt;
[assembly: AssemblyProduct(&amp;quot;C# Demo&amp;quot;)]&lt;br /&gt;
[assembly: AssemblyCopyright(&amp;quot;(c) 2002 Demo2s, Inc.&amp;quot;)]&lt;br /&gt;
[assembly: AssemblyVersion(&amp;quot;1.0.*&amp;quot;)]&lt;br /&gt;
   &lt;br /&gt;
public class SimpleHelloWorld : Form&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        Application.Run(new SimpleHelloWorld());&lt;br /&gt;
    }&lt;br /&gt;
   &lt;br /&gt;
    public SimpleHelloWorld()&lt;br /&gt;
    {&lt;br /&gt;
        Text = &amp;quot;Hello, WindowsForms!&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use Assembly to indicate the version and culture==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
[assembly:AssemblyCulture(&amp;quot;&amp;quot;)]&lt;br /&gt;
[assembly:AssemblyVersion(&amp;quot;1.1.0.5&amp;quot;)]&lt;br /&gt;
class Test{&lt;br /&gt;
   public static void Main() {&lt;br /&gt;
       Console.WriteLine(&amp;quot;www.nfex.ru&amp;quot;);&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Working with an Assembly Entry Point==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
   &lt;br /&gt;
public class MainClass&lt;br /&gt;
{&lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
        Assembly EntryAssembly = Assembly.GetEntryAssembly();&lt;br /&gt;
        if(EntryAssembly.EntryPoint == null){&lt;br /&gt;
            Console.WriteLine(&amp;quot;The assembly has no entry point.&amp;quot;);&lt;br /&gt;
        }else{&lt;br /&gt;
            Console.WriteLine(EntryAssembly.EntryPoint.ToString());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>