12.2. Listing Exported Types
Problem
You need to obtain all the exported types of an assembly. This information allows you to see what types are usable from outside of this assembly.
Solution
Use
Assembly.GetExportedTypes
to obtain the exported
types of an assembly:
using System; using System.Reflection; public static void ListExportedTypes(string path) { // load the assembly Assembly asm = Assembly.LoadFrom(path); Console.WriteLine("Assembly: {0} imports:",path); // get the exported types Type[] types = asm.GetExportedTypes( ); foreach (Type t in types) { Console.WriteLine ("\tExported Type: {0}",t.FullName); } }
The previous example will display all exported, or public, types:
Assembly: C:\C#Cookbook\CSharpRecipes.exe imports: Exported Type: CSharpRecipes.ClassAndStructs Exported Type: CSharpRecipes.Line Exported Type: CSharpRecipes.Square Exported Type: CSharpRecipes.CompareHeight Exported Type: CSharpRecipes.Foo Exported Type: CSharpRecipes.ObjState
Discussion
Obtaining the exported types in an assembly is useful when
determining the public interface to that assembly. This ability can
greatly aid in learning to use a new assembly or can aid the
developer of that assembly in determining all access points to their
assembly and seeing whether they are adequately secure from malicious
code. To get these exported types, we use the
GetExportedTypes
method on the
System.Reflection.Assembly
type. The exported types consist of all of the types that are publicly accessible from outside of ...
Get C# Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.