Assembly.GetExportedTypes 方法

获取此程序集中定义的导出类型,这些导出类型在程序集外可见。

**命名空间:**System.Reflection
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
Public Overridable Function GetExportedTypes As Type()
用法
Dim instance As Assembly
Dim returnValue As Type()

returnValue = instance.GetExportedTypes
public virtual Type[] GetExportedTypes ()
public:
virtual array<Type^>^ GetExportedTypes ()
public Type[] GetExportedTypes ()
public function GetExportedTypes () : Type[]

返回值

Type 对象的数组,这些对象表示此程序集中定义的在程序集外可见的类型。

备注

只有公共类型以及嵌套在其他公共类型中的公共类型才在程序集外可见。

示例

下面的代码示例定义一些具有不同访问级别的类,然后调用 GetExportedTypes 显示在程序集外可见的类。

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
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 {}
}
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;
}
import System.*;
import System.Reflection.*;

public class Example
{
    public static void main(String[] args)
    {
        Type t = null;
        for (int iCtr = 0; iCtr < Assembly.GetExecutingAssembly().
            GetExportedTypes().get_Length(); iCtr++) {
            t = Assembly.GetExecutingAssembly().GetExportedTypes()[iCtr];
            Console.WriteLine(t);
        }
    } //main
} //Example

public class PublicClass
{
    public class PublicNestedClass
    {
    } //PublicNestedClass

    protected class ProtectedNestedClass
    {
    } //ProtectedNestedClass

    class FriendNestedClass
    {
    } //FriendNestedClass

    private class PrivateNestedClass
    {
    } //PrivateNestedClass
} //PublicClass

class FriendClass
{
    public class PublicNestedClass
    {
    } //PublicNestedClass

    protected class ProtectedNestedClass
    {
    } //ProtectedNestedClass

    class FriendNestedClass
    {
    } //FriendNestedClass

    private class PrivateNestedClass
    {
    } //PrivateNestedClass
} //FriendClass 

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

Assembly 类
Assembly 成员
System.Reflection 命名空间