이 설명서는 보관되지만 유지 되지 않습니다.

Module.FindTypes 메서드

업데이트: 2007년 11월

지정한 필터 및 필터 조건으로 수용한 클래스 배열을 반환합니다.

네임스페이스:  System.Reflection
어셈블리:  mscorlib(mscorlib.dll)

public virtual Type[] FindTypes(
	TypeFilter filter,
	Object filterCriteria
)
public Type[] FindTypes(
	TypeFilter filter,
	Object filterCriteria
)
public function FindTypes(
	filter : TypeFilter, 
	filterCriteria : Object
) : Type[]

매개 변수

filter
형식: System.Reflection.TypeFilter

클래스를 필터링하는 데 사용하는 대리자입니다.

filterCriteria
형식: System.Object

클래스를 필터링하는 데 사용하는 개체입니다.

반환 값

형식: System.Type[]

필터에서 사용된 클래스를 포함하는 Type 형식의 배열입니다.

예외상황
ReflectionTypeLoadException

모듈에서 하나 이상의 클래스를 로드할 수 없는 경우

ReflectionTypeLoadException은 특수한 클래스 로드 예외입니다. ReflectionTypeLoadException.Types 속성에는 모듈 내에 정의되었고 로드된 클래스 배열이 포함됩니다. 이 배열에는 일부 Null 값이 포함되어 있을 수 있습니다. ReflectionTypeLoadException.LoaderExceptions 속성은 클래스 로더에서 throw한 예외를 나타내는 예외 배열입니다. 클래스 배열의 구멍은 예외와 함께 정렬됩니다.

filter에 의해 지정된 대리자는 모듈 내의 각 클래스에 대해 호출되며 지정된 filterCriteria 이외에도 클래스를 나타내는 Type 개체를 전달합니다. filter가 특정 클래스를 반환하면 해당 클래스는 반환된 배열 내에 포함됩니다. filternull을 반환하면 모든 클래스가 반환되며 filterCriteria는 무시됩니다.

FindTypes를 사용하여 배열과 같은 매개 변수가 있는 형식을 찾을 수 없습니다.

다음 예제에서는 FindTypes 메서드의 사용법을 보여 줍니다.

using System;
using System.Reflection;

namespace ReflectionModule_Examples
{
    class MyMainClass
    {
        static void Main()
        {
            Module[] moduleArray;

            moduleArray = Assembly.GetExecutingAssembly().GetModules(false);

            // In a simple project with only one module, the module at index
            // 0 will be the module containing these classes.
            Module myModule = moduleArray[0];

            Type[] tArray;

            tArray = myModule.FindTypes(Module.FilterTypeName, "My*");

            foreach(Type t in tArray)
            {
                Console.WriteLine("Found a module beginning with My*: {0}.", t.Name);
            }
        }
    }

    class MySecondClass
    {
    }

    // This class does not fit the filter criteria My*.
    class YourClass
    {
    }
}


package ReflectionModule_Examples;

import System.*;
import System.Reflection.*;

class MyMainClass
{

    public static void main(String[] args)
    {
        Module moduleArray[];
        moduleArray = Assembly.GetExecutingAssembly().GetModules(false);

        // In a simple project with only one module, the module at index
        // 0 will be the module containing these classes.
        Module myModule = (Module)moduleArray.get_Item(0);
        Type tArray[];
        tArray = myModule.FindTypes(Module.FilterTypeName, "My*");
        for (int iCtr = 0; iCtr < tArray.length; iCtr++) {
            Type t = tArray[iCtr];
            Console.WriteLine("Found a module beginning with My*: {0}.",
                t.get_Name());
        }
    } //main
} //MyMainClass

class MySecondClass
{
} //MySecondClass

// This class does not fit the filter criteria My*.
class YourClass
{
} //YourClass


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

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

.NET Framework

3.5, 3.0, 2.0, 1.1, 1.0에서 지원
표시: