Interfaces c#

.NET

03/01/2008

Como é possivel saber se uma determinada classe implementa uma interface?
Por exemplo: Tenho controles no meu WinForms que implementam uma interface e para esses controles eu teria um tratamento especial.

//interface
public interface IMyComponentes
{
string Metodo1
{
set;
get;
}

string Metodo2
{
set;
get;
}
}

//controle
public class MyTextBox:IMyComponentes
{
//
}


Abrzz

Abrzz

Curtidas 0

Respostas

Rjun

Rjun

03/01/2008

Você pode fazer isso através de reflection.
Suponha que você tenha uma classe chamada Teste.

Teste teste;
Type[] tipos;

// Retorna as interfaces que a classe teste implementa
tipos = teste.GetType().GetInterfaces();

// Agora procure em tipos e veja se a classe implementa a interface
// desejada


ou você pode retonar o tipo direto da interface

Teste teste;
Type tipo;

// Retorna as interfaces que a classe teste implementa
tipo = teste.GetType().GetInterface("NomeDaInterface");

// Se tipo for diferente de null a classe implementa a interface que
// você passou como parâmetro



GOSTEI 0
Abrzz

Abrzz

03/01/2008

ok RJun!
Deu certo, obrigado!


GOSTEI 0
POSTAR