Expand Minimize
Tento článek byl přeložen strojově počítačem. Původní text zobrazíte přesunutím ukazatele myši nad jednotlivé věty článku. Další informace
Překlad
Originál
Toto téma nebylo dosud ohodnoceno - Ohodnotit toto téma

Type.FindInterfaces – metoda

Vrátí pole Type objekty představující filtrovaný seznam rozhraní implementováno nebo zděděny aktuální Type.

Obor názvů:  System
Sestavení:  mscorlib (v mscorlib.dll)
public virtual Type[] FindInterfaces(
	TypeFilter filter,
	Object filterCriteria
)

Parametry

filter
Typ: System.Reflection.TypeFilter
Delegát, který porovnává rozhraní proti filterCriteria.
filterCriteria
Typ: System.Object
Kritéria vyhledávání, která určuje, zda mají být zahrnuty rozhraní ve vrácené matici.

Vrácená hodnota

Typ: System.Type[]
Pole Type objekty představující filtrovaný seznam rozhraní implementováno nebo zděděny aktuální Type, nebo prázdné pole typu Type Pokud žádná rozhraní odpovídající filtru jsou implementovány nebo zděděny aktuální Type.

Implementuje

_Type.FindInterfaces(TypeFilter, Object)
VýjimkaPodmínka
ArgumentNullException

filter je null.

TargetInvocationException

Statické inicializátoru je vyvolána a vyvolá výjimku.

Tuto metodu lze přepsat v odvozené třídě.

Module.FilterTypeName a Module.FilterTypeNameIgnoreCase poskytnutých Delegáti System.Reflection.Module třídy může být rovněž, finanční náhradou z System.Reflection.TypeFilter delegovat.

Všechna rozhraní touto třídou implementována považovány při hledání, zda prohlášena za základní třídu nebo třídy samotné.

Tato metoda hledá v hierarchii základní třída vrací všechna rozhraní odpovídající každé třídy implementuje a všechny odpovídající každé z těchto rozhraní implementuje rozhraní (, přenositelný uzavření odpovídající rozhraní je vrácen). Jsou vráceny žádné duplicitní rozhraní.

Pokud aktuální Type představuje parametr typu v definici obecný typ nebo obecná metoda FindInterfaces vyhledá všechna rozhraní deklarovat v omezení pro parametr typu a všechna rozhraní zděděné prostřednictvím rozhraní deklarovat v omezení. Pokud aktuální Type představuje argument typ obecného typu FindInterfaces vyhledá všechna rozhraní implementováno pomocí typu, zda odpovídají omezení.

PoznámkaPoznámka

FindInterfaces můžete vracet obecné rozhraní i na typy, které nejsou obecný. Například může implementovat neobecné typu IEnumerable<int> (IEnumerable(Of Integer) v jazyce Visual Basic).

Následující příklad vyhledá zadané rozhraní implementováno zděděny zadaný typ a potom zobrazí názvy rozhraní.


using System;
using System.Xml;
using System.Reflection;

public class MyFindInterfacesSample 
{
    public static void Main()
    {
        try
        {
            XmlDocument myXMLDoc = new XmlDocument();
            myXMLDoc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" + "</book>");
            Type myType = myXMLDoc.GetType();

            // Specify the TypeFilter delegate that compares the 
            // interfaces against filter criteria.
            TypeFilter myFilter = new TypeFilter(MyInterfaceFilter);
            String[] myInterfaceList = new String[2] 
                {"System.Collections.IEnumerable", 
                "System.Collections.ICollection"};
            for(int index=0; index < myInterfaceList.Length; index++)
            {
                Type[] myInterfaces = myType.FindInterfaces(myFilter, 
                    myInterfaceList[index]);
                if (myInterfaces.Length > 0) 
                {
                    Console.WriteLine("\n{0} implements the interface {1}.",
                        myType, myInterfaceList[index]);	
                    for(int j =0;j < myInterfaces.Length;j++)
                        Console.WriteLine("Interfaces supported: {0}.", 
                            myInterfaces[j].ToString());
                }
                else
                    Console.WriteLine(
                        "\n{0} does not implement the interface {1}.", 
                        myType,myInterfaceList[index]);	
            }
        }
        catch(ArgumentNullException e)
        {
            Console.WriteLine("ArgumentNullException: " + e.Message);
        }
        catch(TargetInvocationException e)
        {
            Console.WriteLine("TargetInvocationException: " + e.Message);
        }
        catch(Exception e)
        {
            Console.WriteLine("Exception: " + e.Message);
        }
    }

    public static bool MyInterfaceFilter(Type typeObj,Object criteriaObj)
    {
        if(typeObj.ToString() == criteriaObj.ToString())
            return true;
        else
            return false;
    }
}


.NET Framework

Podporováno v: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Podporováno v: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (role Server Core není podporována), Windows Server 2008 R2 (role Server Core je podporována s aktualizací SP1 nebo novější, architektura Itanium není podporována)

.NET Framework nepodporuje některé verze platforem. Seznam podporovaných verzí naleznete v tématu Požadavky na systém rozhraní .NET framework.
Byl tento obsah pro vás užitečný?
(Zbývající počet znaků: 1500)

Obsah vytvořený komunitou

Přidat
© 2013 Microsoft. Všechna práva vyhrazena.