<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net%2FDevelopment%2FAssembly</id>
		<title>VB.Net/Development/Assembly - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net%2FDevelopment%2FAssembly"/>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/Development/Assembly&amp;action=history"/>
		<updated>2026-04-05T14:33:11Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net/Development/Assembly&amp;diff=796&amp;oldid=prev</id>
		<title> в 16:40, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/Development/Assembly&amp;diff=796&amp;oldid=prev"/>
				<updated>2010-05-26T16:40:06Z</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;Версия 16:40, 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://www.vbex.ru/index.php?title=VB.Net/Development/Assembly&amp;diff=797&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/Development/Assembly&amp;diff=797&amp;oldid=prev"/>
				<updated>2010-05-26T12:45: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;==Add all Public Assembly Form Type==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt; &lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Drawing&lt;br /&gt;
Imports System.Reflection&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
public class MainClass&lt;br /&gt;
   Shared Sub Main()&lt;br /&gt;
      Dim form1 As Form = New Form1&lt;br /&gt;
      Application.Run(form1)&lt;br /&gt;
   End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Public Class Form1&lt;br /&gt;
    Inherits System.Windows.Forms.Form&lt;br /&gt;
#Region &amp;quot; Windows Form Designer generated code &amp;quot;&lt;br /&gt;
    Public Sub New()&lt;br /&gt;
        MyBase.New()&lt;br /&gt;
        &amp;quot;This call is required by the Windows Form Designer.&lt;br /&gt;
        InitializeComponent()&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Form overrides dispose to clean up the component list.&lt;br /&gt;
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;
        If disposing Then&lt;br /&gt;
            If Not (components Is Nothing) Then&lt;br /&gt;
                components.Dispose()&lt;br /&gt;
            End If&lt;br /&gt;
        End If&lt;br /&gt;
        MyBase.Dispose(disposing)&lt;br /&gt;
    End Sub&lt;br /&gt;
    Friend WithEvents treeView1 As System.Windows.Forms.TreeView&lt;br /&gt;
    &amp;quot;Required by the Windows Form Designer&lt;br /&gt;
    Private components As System.ruponentModel.IContainer&lt;br /&gt;
    &amp;quot;NOTE: The following procedure is required by the Windows Form Designer&lt;br /&gt;
    &amp;quot;It can be modified using the Windows Form Designer.  &lt;br /&gt;
    &amp;quot;Do not modify it using the code editor.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; Private Sub InitializeComponent()&lt;br /&gt;
        Me.treeView1 = New System.Windows.Forms.TreeView()&lt;br /&gt;
        Me.SuspendLayout()&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;treeView1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.treeView1.Anchor = (((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _&lt;br /&gt;
                    Or System.Windows.Forms.AnchorStyles.Left) _&lt;br /&gt;
                    Or System.Windows.Forms.AnchorStyles.Right)&lt;br /&gt;
        Me.treeView1.ImageIndex = -1&lt;br /&gt;
        Me.treeView1.Location = New System.Drawing.Point(8, 16)&lt;br /&gt;
        Me.treeView1.Name = &amp;quot;treeView1&amp;quot;&lt;br /&gt;
        Me.treeView1.SelectedImageIndex = -1&lt;br /&gt;
        Me.treeView1.Size = New System.Drawing.Size(448, 200)&lt;br /&gt;
        Me.treeView1.Sorted = True&lt;br /&gt;
        Me.treeView1.TabIndex = 0&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;Form1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)&lt;br /&gt;
        Me.ClientSize = New System.Drawing.Size(467, 248)&lt;br /&gt;
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.treeView1})&lt;br /&gt;
        Me.Name = &amp;quot;Form1&amp;quot;&lt;br /&gt;
        Me.Text = &amp;quot;View Direct Members of Objects&amp;quot;&lt;br /&gt;
        Me.ResumeLayout(False)&lt;br /&gt;
    End Sub&lt;br /&gt;
#End Region&lt;br /&gt;
&lt;br /&gt;
    Private Function StripType(ByVal s As String) As String&lt;br /&gt;
        Dim spacepos As Integer&lt;br /&gt;
        spacepos = InStr(s, &amp;quot; &amp;quot;)&lt;br /&gt;
        If spacepos &amp;gt; 0 Then Return Mid$(s, spacepos + 1)&lt;br /&gt;
        Return (s)&lt;br /&gt;
    End Function&lt;br /&gt;
    Private Sub Form1_Load(ByVal sender As Object, _&lt;br /&gt;
        ByVal e As System.EventArgs) Handles Me.Load&lt;br /&gt;
        Dim asm As [Assembly]&lt;br /&gt;
        Dim asmtypes() As Type&lt;br /&gt;
        Dim ThisType As Type&lt;br /&gt;
        asm = Reflection.Assembly.GetAssembly(GetType(System.Windows.Forms.Form))&lt;br /&gt;
        asmtypes = asm.GetTypes()&lt;br /&gt;
        For Each ThisType In asmtypes&lt;br /&gt;
            If ThisType.IsClass And ThisType.IsPublic Then&lt;br /&gt;
                Dim tn As New TreeNode(ThisType.Name)&lt;br /&gt;
                treeView1.Nodes.Add(tn)&lt;br /&gt;
            End If&lt;br /&gt;
        Next&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Find Members with Binding Flags==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt; &lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Reflection&lt;br /&gt;
 &lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    Shared Sub Main(  )&lt;br /&gt;
         Dim t As Type = Type.GetType(&amp;quot;System.Reflection.Assembly&amp;quot;)&lt;br /&gt;
         Dim mbrInfoArray As MemberInfo(  ) = t.FindMembers( _&lt;br /&gt;
             MemberTypes.Method, _&lt;br /&gt;
             BindingFlags.Public Or _&lt;br /&gt;
             BindingFlags.Static Or _&lt;br /&gt;
             BindingFlags.NonPublic Or _&lt;br /&gt;
             BindingFlags.Instance Or _&lt;br /&gt;
             BindingFlags.DeclaredOnly, _&lt;br /&gt;
             Type.FilterName, &amp;quot;Get*&amp;quot;)&lt;br /&gt;
         Dim inf As MemberInfo&lt;br /&gt;
         For Each inf In mbrInfoArray&lt;br /&gt;
             Console.WriteLine(&amp;quot;{0} is a {1}&amp;quot;, _&lt;br /&gt;
                 inf, inf.MemberType)&lt;br /&gt;
         Next&lt;br /&gt;
    End Sub&lt;br /&gt;
  &lt;br /&gt;
End Class&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 Assembly Member type: Property or Member ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt; &lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Reflection&lt;br /&gt;
 &lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    Shared Sub Main(  )&lt;br /&gt;
         Dim t As Type = Type.GetType(&amp;quot;System.Reflection.Assembly&amp;quot;)&lt;br /&gt;
         Console.WriteLine(&amp;quot;Single type is {0}&amp;quot;, t)&lt;br /&gt;
         Dim mbrInfoArray As MemberInfo(  ) = t.GetMembers(  )&lt;br /&gt;
         Dim inf As MemberInfo&lt;br /&gt;
         For Each inf In mbrInfoArray&lt;br /&gt;
             Console.WriteLine(&amp;quot;{0} is a {1}&amp;quot;, _&lt;br /&gt;
                 inf, inf.MemberType)&lt;br /&gt;
         Next&lt;br /&gt;
    End Sub&lt;br /&gt;
  &lt;br /&gt;
End Class&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 Class Name in Current Assembly==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt; &lt;br /&gt;
Imports System.Reflection&lt;br /&gt;
Class A&lt;br /&gt;
End Class&lt;br /&gt;
Class B&lt;br /&gt;
End Class&lt;br /&gt;
Class C&lt;br /&gt;
End Class&lt;br /&gt;
Class D&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    Public Shared Sub Main()&lt;br /&gt;
        Dim ThisAssembly As [Assembly] = [Assembly].GetExecutingAssembly()&lt;br /&gt;
        Dim TypeObj As Type&lt;br /&gt;
        For Each TypeObj In ThisAssembly.GetTypes()&lt;br /&gt;
            Console.WriteLine(TypeObj.Name)&lt;br /&gt;
        Next&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&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 Executing Assembly==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt; &lt;br /&gt;
Imports System.Reflection&lt;br /&gt;
&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    Public Shared Sub Main()&lt;br /&gt;
        Dim ThisAssembly As [Assembly] = [Assembly].GetExecutingAssembly()&lt;br /&gt;
        Dim Attr As Attribute&lt;br /&gt;
        For Each Attr In ThisAssembly.GetCustomAttributes(False)&lt;br /&gt;
            Console.WriteLine(Attr)&lt;br /&gt;
        Next&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&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 info for current AppDomain==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;  &lt;br /&gt;
Imports System.Reflection&lt;br /&gt;
Module Program&lt;br /&gt;
  Sub Main()&lt;br /&gt;
    Dim defaultAD As AppDomain = AppDomain.CurrentDomain()&lt;br /&gt;
    PrintAllAssembliesInAppDomain(defaultAD)&lt;br /&gt;
  End Sub&lt;br /&gt;
  Public Sub PrintAllAssembliesInAppDomain(ByVal ad As AppDomain)&lt;br /&gt;
    Dim loadedAssemblies As Assembly() = ad.GetAssemblies()&lt;br /&gt;
    Console.WriteLine(ad.FriendlyName)&lt;br /&gt;
    For Each a As Assembly In loadedAssemblies&lt;br /&gt;
      Console.WriteLine(&amp;quot;-&amp;gt; Name: {0}&amp;quot;, a.GetName.Name)&lt;br /&gt;
      Console.WriteLine(&amp;quot;-&amp;gt; Version: {0}&amp;quot;, a.GetName.Version)&lt;br /&gt;
    Next&lt;br /&gt;
  End Sub&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Get Information from Assembly==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt; &lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.Reflection&lt;br /&gt;
Imports System.Runtime.InteropServices&lt;br /&gt;
&amp;lt;Assembly: AssemblyTitle(&amp;quot;My Title&amp;quot;)&amp;gt; &lt;br /&gt;
&amp;lt;Assembly: AssemblyDescription(&amp;quot;A description.&amp;quot;)&amp;gt; &lt;br /&gt;
&amp;lt;Assembly: AssemblyCompany(&amp;quot;Pretty Good Software&amp;quot;)&amp;gt; &lt;br /&gt;
&amp;lt;Assembly: AssemblyProduct(&amp;quot;A Really Great Product!&amp;quot;)&amp;gt; &lt;br /&gt;
&amp;lt;Assembly: AssemblyCopyright(&amp;quot;Copyright ? 2005&amp;quot;)&amp;gt; &lt;br /&gt;
&amp;lt;Assembly: AssemblyTrademark(&amp;quot;TM&amp;quot;)&amp;gt; &lt;br /&gt;
&amp;lt;Assembly: CLSCompliant(True)&amp;gt; &lt;br /&gt;
&amp;lt;Assembly: ComVisible(False)&amp;gt;&lt;br /&gt;
&amp;quot;The following GUID is for the ID of the typelib if this project is exposed to COM&lt;br /&gt;
&amp;lt;Assembly: Guid(&amp;quot;4db4b206-3cc5-4ea0-9e91-59537aba04a8&amp;quot;)&amp;gt; &lt;br /&gt;
&amp;quot; Version information for an assembly consists of the following four values:&lt;br /&gt;
&amp;quot;&lt;br /&gt;
&amp;quot;      Major Version&lt;br /&gt;
&amp;quot;      Minor Version &lt;br /&gt;
&amp;quot;      Build Number&lt;br /&gt;
&amp;quot;      Revision&lt;br /&gt;
&amp;quot;&lt;br /&gt;
&amp;quot; You can specify all the values or you can default the Build and Revision Numbers &lt;br /&gt;
&amp;quot; by using the &amp;quot;*&amp;quot; as shown below:&lt;br /&gt;
&amp;quot; &amp;lt;Assembly: AssemblyVersion(&amp;quot;1.0.*&amp;quot;)&amp;gt; &lt;br /&gt;
&amp;lt;Assembly: AssemblyVersion(&amp;quot;1.2.3.4&amp;quot;)&amp;gt; &lt;br /&gt;
&amp;lt;Assembly: AssemblyFileVersion(&amp;quot;5.6.7.8&amp;quot;)&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
   Shared Sub Main()&lt;br /&gt;
       Console.WriteLine( Application.ProductName )&lt;br /&gt;
       Console.WriteLine( Application.rupanyName )&lt;br /&gt;
       Console.WriteLine( Application.ProductVersion )&lt;br /&gt;
   End Sub &lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hook into DomainUnload event==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;  &lt;br /&gt;
Imports System.Reflection&lt;br /&gt;
Module Program&lt;br /&gt;
    Sub Main()&lt;br /&gt;
        Dim anotherAD As AppDomain = AppDomain.CreateDomain(&amp;quot;SecondAppDomain&amp;quot;)&lt;br /&gt;
        &amp;quot; Load CarLibrary.dll into this new appdomain.&lt;br /&gt;
        anotherAD.Load(&amp;quot;CarLibrary&amp;quot;)&lt;br /&gt;
        &amp;quot; Hook into DomainUnload event.&lt;br /&gt;
        AddHandler anotherAD.DomainUnload, AddressOf anotherAD_DomainUnload&lt;br /&gt;
        &amp;quot; Now unload anotherAD.&lt;br /&gt;
        AppDomain.Unload(anotherAD)&lt;br /&gt;
&lt;br /&gt;
    End Sub&lt;br /&gt;
    Public Sub PrintAllAssembliesInAppDomain(ByVal ad As AppDomain)&lt;br /&gt;
        Dim loadedAssemblies As Assembly() = ad.GetAssemblies()&lt;br /&gt;
        Console.WriteLine(ad.FriendlyName)&lt;br /&gt;
        For Each a As Assembly In loadedAssemblies&lt;br /&gt;
            Console.WriteLine(&amp;quot;-&amp;gt; Name: {0}&amp;quot;, a.GetName.Name)&lt;br /&gt;
            Console.WriteLine(&amp;quot;-&amp;gt; Version: {0}&amp;quot;, a.GetName.Version)&lt;br /&gt;
        Next&lt;br /&gt;
    End Sub&lt;br /&gt;
    Sub anotherAD_DomainUnload(ByVal sender As Object, ByVal e As EventArgs)&lt;br /&gt;
        Console.WriteLine(&amp;quot;***** Unloaded anotherAD! *****&amp;quot;)&lt;br /&gt;
    End Sub&lt;br /&gt;
    Sub defaultAD_ProcessExit(ByVal sender As Object, ByVal e As EventArgs)&lt;br /&gt;
        Console.WriteLine(&amp;quot;***** Unloaded defaultAD! *****&amp;quot;)&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Load all Types in one Assembly==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt; &lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Reflection&lt;br /&gt;
 &lt;br /&gt;
Public Class MainClass&lt;br /&gt;
    Shared Sub Main(  )&lt;br /&gt;
         Dim a As [Assembly] = [Assembly].Load(&amp;quot;Mscorlib.dll&amp;quot;)&lt;br /&gt;
         Dim theTypes As Type(  ) = a.GetTypes(  )&lt;br /&gt;
         Dim t As Type&lt;br /&gt;
         For Each t In theTypes&lt;br /&gt;
             Console.WriteLine(&amp;quot;Type is {0}&amp;quot;, t)&lt;br /&gt;
         Next t&lt;br /&gt;
         Console.WriteLine(&amp;quot;{0} types found&amp;quot;, theTypes.Length)&lt;br /&gt;
    End Sub&lt;br /&gt;
  &lt;br /&gt;
End Class&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;
==Programmatically make a new app domain==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;  &lt;br /&gt;
Imports System.Reflection&lt;br /&gt;
Module Program&lt;br /&gt;
  Sub Main()&lt;br /&gt;
    Dim anotherAD As AppDomain = AppDomain.CreateDomain(&amp;quot;SecondAppDomain&amp;quot;)&lt;br /&gt;
    &amp;quot; Load CarLibrary.dll into this new appdomain.&lt;br /&gt;
    anotherAD.Load(&amp;quot;CarLibrary&amp;quot;)&lt;br /&gt;
    PrintAllAssembliesInAppDomain(anotherAD)&lt;br /&gt;
  End Sub&lt;br /&gt;
  Public Sub PrintAllAssembliesInAppDomain(ByVal ad As AppDomain)&lt;br /&gt;
    Dim loadedAssemblies As Assembly() = ad.GetAssemblies()&lt;br /&gt;
    Console.WriteLine(ad.FriendlyName)&lt;br /&gt;
    For Each a As Assembly In loadedAssemblies&lt;br /&gt;
      Console.WriteLine(&amp;quot;-&amp;gt; Name: {0}&amp;quot;, a.GetName.Name)&lt;br /&gt;
      Console.WriteLine(&amp;quot;-&amp;gt; Version: {0}&amp;quot;, a.GetName.Version)&lt;br /&gt;
    Next&lt;br /&gt;
  End Sub&lt;br /&gt;
&lt;br /&gt;
End Module&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==View all Assembly Form Type and its members in a Tree==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt; &lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Drawing&lt;br /&gt;
Imports System.Reflection&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
public class MainClass&lt;br /&gt;
   Shared Sub Main()&lt;br /&gt;
      Dim form1 As Form = New Form1&lt;br /&gt;
      Application.Run(form1)&lt;br /&gt;
   End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Public Class Form1&lt;br /&gt;
    Inherits System.Windows.Forms.Form&lt;br /&gt;
#Region &amp;quot; Windows Form Designer generated code &amp;quot;&lt;br /&gt;
    Public Sub New()&lt;br /&gt;
        MyBase.New()&lt;br /&gt;
        &amp;quot;This call is required by the Windows Form Designer.&lt;br /&gt;
        InitializeComponent()&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Form overrides dispose to clean up the component list.&lt;br /&gt;
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;
        If disposing Then&lt;br /&gt;
            If Not (components Is Nothing) Then&lt;br /&gt;
                components.Dispose()&lt;br /&gt;
            End If&lt;br /&gt;
        End If&lt;br /&gt;
        MyBase.Dispose(disposing)&lt;br /&gt;
    End Sub&lt;br /&gt;
    Friend WithEvents treeView1 As System.Windows.Forms.TreeView&lt;br /&gt;
    &amp;quot;Required by the Windows Form Designer&lt;br /&gt;
    Private components As System.ruponentModel.IContainer&lt;br /&gt;
    &amp;quot;NOTE: The following procedure is required by the Windows Form Designer&lt;br /&gt;
    &amp;quot;It can be modified using the Windows Form Designer.  &lt;br /&gt;
    &amp;quot;Do not modify it using the code editor.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; Private Sub InitializeComponent()&lt;br /&gt;
        Me.treeView1 = New System.Windows.Forms.TreeView()&lt;br /&gt;
        Me.SuspendLayout()&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;treeView1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.treeView1.Anchor = (((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _&lt;br /&gt;
                    Or System.Windows.Forms.AnchorStyles.Left) _&lt;br /&gt;
                    Or System.Windows.Forms.AnchorStyles.Right)&lt;br /&gt;
        Me.treeView1.ImageIndex = -1&lt;br /&gt;
        Me.treeView1.Location = New System.Drawing.Point(8, 16)&lt;br /&gt;
        Me.treeView1.Name = &amp;quot;treeView1&amp;quot;&lt;br /&gt;
        Me.treeView1.SelectedImageIndex = -1&lt;br /&gt;
        Me.treeView1.Size = New System.Drawing.Size(448, 200)&lt;br /&gt;
        Me.treeView1.Sorted = True&lt;br /&gt;
        Me.treeView1.TabIndex = 0&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;Form1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)&lt;br /&gt;
        Me.ClientSize = New System.Drawing.Size(467, 248)&lt;br /&gt;
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.treeView1})&lt;br /&gt;
        Me.Name = &amp;quot;Form1&amp;quot;&lt;br /&gt;
        Me.Text = &amp;quot;View Direct Members of Objects&amp;quot;&lt;br /&gt;
        Me.ResumeLayout(False)&lt;br /&gt;
    End Sub&lt;br /&gt;
#End Region&lt;br /&gt;
&lt;br /&gt;
    Private Function StripType(ByVal s As String) As String&lt;br /&gt;
        Dim spacepos As Integer&lt;br /&gt;
        spacepos = InStr(s, &amp;quot; &amp;quot;)&lt;br /&gt;
        If spacepos &amp;gt; 0 Then Return Mid$(s, spacepos + 1)&lt;br /&gt;
        Return (s)&lt;br /&gt;
    End Function&lt;br /&gt;
    Private Sub Form1_Load(ByVal sender As Object, _&lt;br /&gt;
        ByVal e As System.EventArgs) Handles Me.Load&lt;br /&gt;
        Dim asm As [Assembly]&lt;br /&gt;
        Dim asmtypes() As Type&lt;br /&gt;
        Dim ThisType As Type&lt;br /&gt;
        asm = Reflection.Assembly.GetAssembly(GetType(System.Windows.Forms.Form))&lt;br /&gt;
        asmtypes = asm.GetTypes()&lt;br /&gt;
        For Each ThisType In asmtypes&lt;br /&gt;
            If ThisType.IsClass Then&lt;br /&gt;
                Dim tn As New TreeNode(ThisType.Name)&lt;br /&gt;
                Dim members(), mi As MemberInfo&lt;br /&gt;
                treeView1.Nodes.Add(tn)&lt;br /&gt;
                members = ThisType.GetMembers(BindingFlags.DeclaredOnly Or BindingFlags.Public Or BindingFlags.Instance Or BindingFlags.Static)&lt;br /&gt;
                For Each mi In members&lt;br /&gt;
                    Dim methinfo As MethodInfo&lt;br /&gt;
                    Select Case mi.MemberType&lt;br /&gt;
                        Case MemberTypes.Method&lt;br /&gt;
                            methinfo = CType(mi, MethodInfo)&lt;br /&gt;
                            If Not methinfo.IsSpecialName Then&lt;br /&gt;
                                tn.Nodes.Add(StripType(mi.ToString))&lt;br /&gt;
                            End If&lt;br /&gt;
                        Case MemberTypes.Event&lt;br /&gt;
                            tn.Nodes.Add(StripType(mi.ToString) &amp;amp; &amp;quot; event&amp;quot;)&lt;br /&gt;
                        Case Else&lt;br /&gt;
                            tn.Nodes.Add(StripType(mi.ToString))&lt;br /&gt;
                    End Select&lt;br /&gt;
                Next&lt;br /&gt;
            End If&lt;br /&gt;
        Next&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
         &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==View all Assembly Form Type in a Tree==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt; &lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Drawing&lt;br /&gt;
Imports System.Reflection&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
public class MainClass&lt;br /&gt;
   Shared Sub Main()&lt;br /&gt;
      Dim form1 As Form = New Form1&lt;br /&gt;
      Application.Run(form1)&lt;br /&gt;
   End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Public Class Form1&lt;br /&gt;
    Inherits System.Windows.Forms.Form&lt;br /&gt;
#Region &amp;quot; Windows Form Designer generated code &amp;quot;&lt;br /&gt;
    Public Sub New()&lt;br /&gt;
        MyBase.New()&lt;br /&gt;
        &amp;quot;This call is required by the Windows Form Designer.&lt;br /&gt;
        InitializeComponent()&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot;Form overrides dispose to clean up the component list.&lt;br /&gt;
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)&lt;br /&gt;
        If disposing Then&lt;br /&gt;
            If Not (components Is Nothing) Then&lt;br /&gt;
                components.Dispose()&lt;br /&gt;
            End If&lt;br /&gt;
        End If&lt;br /&gt;
        MyBase.Dispose(disposing)&lt;br /&gt;
    End Sub&lt;br /&gt;
    Friend WithEvents treeView1 As System.Windows.Forms.TreeView&lt;br /&gt;
    &amp;quot;Required by the Windows Form Designer&lt;br /&gt;
    Private components As System.ruponentModel.IContainer&lt;br /&gt;
    &amp;quot;NOTE: The following procedure is required by the Windows Form Designer&lt;br /&gt;
    &amp;quot;It can be modified using the Windows Form Designer.  &lt;br /&gt;
    &amp;quot;Do not modify it using the code editor.&lt;br /&gt;
    &amp;lt;System.Diagnostics.DebuggerStepThrough()&amp;gt; Private Sub InitializeComponent()&lt;br /&gt;
        Me.treeView1 = New System.Windows.Forms.TreeView()&lt;br /&gt;
        Me.SuspendLayout()&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;treeView1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.treeView1.Anchor = (((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _&lt;br /&gt;
                    Or System.Windows.Forms.AnchorStyles.Left) _&lt;br /&gt;
                    Or System.Windows.Forms.AnchorStyles.Right)&lt;br /&gt;
        Me.treeView1.ImageIndex = -1&lt;br /&gt;
        Me.treeView1.Location = New System.Drawing.Point(8, 16)&lt;br /&gt;
        Me.treeView1.Name = &amp;quot;treeView1&amp;quot;&lt;br /&gt;
        Me.treeView1.SelectedImageIndex = -1&lt;br /&gt;
        Me.treeView1.Size = New System.Drawing.Size(448, 200)&lt;br /&gt;
        Me.treeView1.Sorted = True&lt;br /&gt;
        Me.treeView1.TabIndex = 0&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        &amp;quot;Form1&lt;br /&gt;
        &amp;quot;&lt;br /&gt;
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)&lt;br /&gt;
        Me.ClientSize = New System.Drawing.Size(467, 248)&lt;br /&gt;
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.treeView1})&lt;br /&gt;
        Me.Name = &amp;quot;Form1&amp;quot;&lt;br /&gt;
        Me.Text = &amp;quot;View Direct Members of Objects&amp;quot;&lt;br /&gt;
        Me.ResumeLayout(False)&lt;br /&gt;
    End Sub&lt;br /&gt;
#End Region&lt;br /&gt;
&lt;br /&gt;
    Private Function StripType(ByVal s As String) As String&lt;br /&gt;
        Dim spacepos As Integer&lt;br /&gt;
        spacepos = InStr(s, &amp;quot; &amp;quot;)&lt;br /&gt;
        If spacepos &amp;gt; 0 Then Return Mid$(s, spacepos + 1)&lt;br /&gt;
        Return (s)&lt;br /&gt;
    End Function&lt;br /&gt;
    Private Sub Form1_Load(ByVal sender As Object, _&lt;br /&gt;
        ByVal e As System.EventArgs) Handles Me.Load&lt;br /&gt;
        Dim asm As [Assembly]&lt;br /&gt;
        Dim asmtypes() As Type&lt;br /&gt;
        Dim ThisType As Type&lt;br /&gt;
        asm = Reflection.Assembly.GetAssembly(GetType(System.Windows.Forms.Form))&lt;br /&gt;
        asmtypes = asm.GetTypes()&lt;br /&gt;
        For Each ThisType In asmtypes&lt;br /&gt;
            If ThisType.IsClass Then&lt;br /&gt;
                Dim tn As New TreeNode(ThisType.Name)&lt;br /&gt;
                treeView1.Nodes.Add(tn)&lt;br /&gt;
            End If&lt;br /&gt;
        Next&lt;br /&gt;
    End Sub&lt;br /&gt;
&lt;br /&gt;
End Class&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>