1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

C# Dll plugins

Discussão em 'Programação' iniciada por inginheiiro, 16 de Novembro de 2005. (Respostas: 4; Visualizações: 6394)

  1. inginheiiro

    inginheiiro Power Member

    Boas,

    Este é dedicado ao takumi, que se queixa que não contribuo para a comunidade...


    Assunto:
    Como fazer uso da API do .NET, neste caso o C# para criar aplicações que consigam carregar
    na sua execução módulos de plugin.

    Resumindo, uma aplicação ser capaz de carregar DLL's.

    1. Fazendo uso do System.Reflection
    2. Fazendo uso do que se deveria aprender na escolinha (ouviste BRABO???)
    3. Imaginação...

    Basta criar-mos uma classe de interface do genero:

    Código:
    public interface IBasePlugin
    	{
    		string pluginName();
    		string pluginDescription();
    		void addParameter(object key, object value);
    		object execute();
    	}
    posteriormente, podemos criar as DLL's desde que obedeçam ao interface.

    exemplo:

    public class PluginHelloWorld : IBasePlugin
    {
    public PluginHelloWorld()
    {
    }

    #region IBasePlugin Members

    public string pluginName()
    {
    return "HelloWorldPlugIn";
    }

    public string pluginDescription()
    {
    return "Este plugin só escreve a frase Hello World no ecran...";
    }

    public void addParameter(object key, object value)
    {
    // Não são necessários parametros.
    return;
    }

    public object execute()
    {
    Console.WriteLine("Hello World");
    return null;
    }

    #endregion
    }

    .


    finalmente na nossa aplicação, criamos uma aplicação que leia de um directorio, as DLL's que implementem um dado interface, e instanciamo-las...

    fazemos isto á custa do Reflection...



    eis o pedaço de Src code que faz isso.




    eu fiz um projecto em VS 2003 com o src code todo ...
    download http://bragatel.pt/coredump/PlugInTutorial.zip

    caso tenham duvidas amanha respondo, pois hoje não tenho muito tempo.
     
    Última edição: 16 de Novembro de 2005
  2. BraBo

    BraBo Banido

    4. E falta de gaja......
     
  3. mcog_blaster

    mcog_blaster Power Member

    boa, agora so tens de continuar e elevar o grau de dificuldade...
    tipo 1 artigo por semana...tu consegues, tamos todos ctg.
     
  4. inginheiiro

    inginheiiro Power Member

    1 artigo/semana...

    i:rolleyes:
     
  5. NoMercy

    NoMercy Power Member

    Boa inginheiiro. Gostei!! :D Tambem já usei o Reflection num projecto.
    Vou indexar esta thread na thread de artigos.
     

Partilhar esta Página