.NET Framework Class Library
Assembly..::.GetExportedTypes Method

Gets the public types defined in this assembly that are visible outside the assembly.

Namespace:  System.Reflection
Assembly:  mscorlib (in mscorlib.dll)
Syntax

Visual Basic (Declaration)
Public Overridable Function GetExportedTypes As Type()
Visual Basic (Usage)
Dim instance As [Assembly]
Dim returnValue As Type()

returnValue = instance.GetExportedTypes()
C#
public virtual Type[] GetExportedTypes()
Visual C++
public:
virtual array<Type^>^ GetExportedTypes()
JScript
public function GetExportedTypes() : Type[]

Return Value

Type: array<System..::.Type>[]()[]
An array of Type objects that represent the types defined in this assembly that are visible outside the assembly.

Implements

_Assembly..::.GetExportedTypes()()()
Remarks

The only types visible outside an assembly are public types and public types nested within other public types.

Examples

The following code sample defines a number of classes with various access levels, and calls GetExportedTypes to display the ones that are visible from outside the assembly.

Visual Basic
Imports System
Imports System.Reflection

Public Class Example
    Public Shared Sub Main()
        For Each t As Type In [Assembly].GetExecutingAssembly.GetExportedTypes()
            Console.WriteLine(t)
        Next
    End Sub
End Class

Public Class PublicClass
    Public Class PublicNestedClass
    End Class

    Protected Class ProtectedNestedClass
    End Class

    Friend Class FriendNestedClass
    End Class

    Private Class PrivateNestedClass
    End Class
End Class

Friend Class FriendClass
    Public Class PublicNestedClass
    End Class

    Protected Class ProtectedNestedClass
    End Class

    Friend Class FriendNestedClass
    End Class

    Private Class PrivateNestedClass
    End Class
End Class
C#
using System;
using System.Reflection;

public class Example
{
    public static void Main()
    {
        foreach (Type t in Assembly.GetExecutingAssembly().GetExportedTypes())
        {
            Console.WriteLine(t);
        }
    }
}

public class PublicClass
{
    public class PublicNestedClass {}

    protected class ProtectedNestedClass {}

    internal class FriendNestedClass {}

    private class PrivateNestedClass {}
}

internal class FriendClass
{
    public class PublicNestedClass {}

    protected class ProtectedNestedClass {}

    internal class FriendNestedClass {}

    private class PrivateNestedClass {}
}
Visual C++
using namespace System;
using namespace System::Reflection;

namespace ExportedClassExample
{
    public ref class Example sealed
    {
    private:
        Example() 
        {
        }

    public:
        void static EnumerateExportedTypes()
        {
            for each (Type^ exportedType in 
                Assembly::GetExecutingAssembly()->GetExportedTypes())
            {
                Console::WriteLine(exportedType);
            }
        }
    };

    public ref class PublicClass
    {
    public:
        ref class PublicNestedClass 
        { 
        };

    protected:
        ref class ProtectedNestedClass 
        { 
        };

    internal:
        ref class FriendNestedClass 
        { 
        };

    private:
        ref class PrivateNestedClass
        { 
        };
    };

    ref class FriendClass
    {
    public:
        ref class PublicNestedClass
        { 
        };

    protected:
        ref class ProtectedNestedClass 
        { 
        };

    internal:
        ref class FriendNestedClass 
        { 
        };

    private:
        ref class PrivateNestedClass 
        { 
        };
    };
}

int main()
{
    ExportedClassExample::Example::EnumerateExportedTypes();

    return 0;
}
Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0
See Also

Reference

Tags :


Community Content

David M. Kean - MSFT
Type will appear in this list if Type.IsVisible is true.

A type will appear in this list if Type.IsVisible is true.

Tags :

David M. Kean - MSFT
Forwarded types are not included
If a type has been forwarded to another assembly, it is not included in the returned array. For information on type forwarding, see Type Forwarding in the Common Language Runtime: http://msdn.microsoft.com/en-us/library/ms404275.aspx.
Tags : contentbug

Page view tracker