Skip to Content
C# Cookbook
book

C# Cookbook

by Stephen Teilhet, Jay Hilyard
January 2004
Beginner to intermediate
864 pages
22h 18m
English
O'Reilly Media, Inc.
Content preview from C# Cookbook

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 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C# Cookbook

C# Cookbook

Joe Mayo
C# Cookbook, 2nd Edition

C# Cookbook, 2nd Edition

Jay Hilyard, Stephen Teilhet
ASP.NET Cookbook

ASP.NET Cookbook

Michael A Kittel, Geoffrey T. LeBlond

Publisher Resources

ISBN: 0596003390Supplemental ContentCatalog PageErrata