Expandir Minimizar
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
1 de 1 pessoas classificaram isso como útil - Avalie este tópico

Método Type.FindInterfaces

Retorna uma matriz de objetos de Type que representam uma lista filtrada de interfaces implementadas ou herdadas por Typeatual.

Namespace:  System
Assembly:  mscorlib (em mscorlib.dll)
public virtual Type[] FindInterfaces(
	TypeFilter filter,
	Object filterCriteria
)

Parâmetros

filter
Tipo: System.Reflection.TypeFilter
O representante que compara as interfaces com filterCriteria.
filterCriteria
Tipo: System.Object
Os critérios de pesquisa que determina se uma interface deve ser incluída na matriz retornada.

Valor de retorno

Tipo: System.Type[]
Uma matriz de objetos de Type que representam uma lista filtrada das interfaces implementadas ou herdadas por Typeatual, ou uma matriz vazia do tipo Type se nenhuma interface que corresponde ao filtro é implementada ou herdada por Typeatual.

Implementações

_Type.FindInterfaces(TypeFilter, Object)
ExceçãoCondição
ArgumentNullException

filter é null.

TargetInvocationException

Um inicializador estático é chamado e gera uma exceção.

Esse método pode ser substituído por uma classe derivada.

Delegados de Module.FilterTypeName e de Module.FilterTypeNameIgnoreCase fornecido pela classe de System.Reflection.Module também podem ser usados, no lugar de System.Reflection.TypeFilter .

Todas as interfaces implementadas por essa classe são consideradas durante a busca, se declarado por uma classe base ou por esta classe própria.

Este método procura a hierarquia de classe base, retornando cada correspondência de interfaces de cada classe implementa assim como quaisquer interfaces cada um de correspondência de essas interfaces implementa (isto é, o fechamento transitivo das interfaces compatíveis é retornado.) Nenhuma interface duplicadas é retornada.

Se Type atual representa um parâmetro de tipo na definição de um tipo genérico ou de um método genérico, FindInterfaces procura todas as interfaces declaradas nas restrições de parâmetro de tipo, e todas as interfaces herdadas das interfaces declaradas nas restrições. Se Type atual representa um argumento de tipo de um tipo genérico, FindInterfaces procura todas as interfaces implementadas pelo tipo, mesmo se eles correspondem restrições.

ObservaçãoObservação

FindInterfaces pode retornar as interfaces genéricas, mesmo em tipos que não são genéricas. Por exemplo, um tipo não pode implementar IEnumerable<int> (IEnumerable(Of Integer) no Visual Basic).

O exemplo localiza a interface especificada implementada ou herdada pelo tipo especificado, e então exibe os nomes da interface.


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

Com suporte em: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte .Requisitos de sistema do NET Framework.
Isso foi útil para você?
(1500 caracteres restantes)

Contribuições da comunidade

ADICIONAR
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
© 2013 Microsoft. Todos os direitos reservados.