IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

[C#] MEF SIlverlight acceder au DLL [Débutant(e)]


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Par défaut [C#] MEF SIlverlight acceder au DLL
    Bonjour,

    Je développe une application en utilisant Silverlight, et je souhaiterais implémenter un systeme de plugin.
    Cependant la documentation et les tutos sur MEF sont soit obsolètes, soit incomplets.
    Je souhaite charger une classe simple située dans un autre projet (projet de type classe).

    Ce qu'il manque dans mon code, c'est la configuration de MEF afin d'acceder à l'endroit ou est placé le plugin, ce que je n'arrive pas à importer.

    Voici mon code du coté de l'application:

    app.xaml.cs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    namespace MEFdevellopez
    {
        public partial class App : Application
        {
            public App()
            {
                this.Startup += this.Application_Startup;
                this.Exit += this.Application_Exit;
                this.UnhandledException += this.Application_UnhandledException;
     
                InitializeComponent();
            }
     
           private void Application_Startup(object sender, StartupEventArgs e)
            {
                CompositionInitializer.SatisfyImports(this);
                var mainPage = new MainPage();
                RootVisual = mainPage;
            }
     
            private void Application_Exit(object sender, EventArgs e)
            {
            }
        }
        public abstract class IPlugin
        {
            public string reponse;
            public string getMere()
            {
                return reponse;
            }
        }
    }
    mainpage.xaml.cs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    namespace MEFdevellopez
    {
        public partial class MainPage : UserControl
        {
            [Import]
            public IPlugin plug{ get; set; }
     
             public class Plugin : IPlugin
            {
            }
     
            public MainPage()
            {
                Plugin mere = (Plugin)plug;
                InitializeComponent();
                textBox1.Text = mere.getMere();
            }
        }
    }
    Et la classe que je veux exporter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    namespace DLL
    {
        public abstract class IPlugin
        {
            public string reponse;
            public string getMere()
            {
                return reponse;
            }
        }
     
        [Export(typeof(Plugin))]
        public class Plugin : IPlugin
        {
            public Plugin()
            {
                this.reponse = "lol";
            }
        }
    }
    Merci d'avance;
    Cordialement;
    Eko

  2. #2
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Dans ton projet principal, est-ce que tu as mis une référence vers le projet DLL, afin que celui-ci soit inclut dans le XAP?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Par défaut
    Bonjour,

    Je n'avais pas ajoute de reference, mais cela ne fonctionne pas non plus avec la reference.

    Cela me parait bizarre de devoir rajouter une référence dans le projet pour chaque nouveau plugin, car MEF perd son intérêt si on doit modifier le projet pour installer un plugin, non?

    cordialement

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    MEF sur Silverlight est un peu plus compliqué que sur WPF car il faut bien comprendre que Silverlight est une techno web côté client.
    Premier point, en Silverlight tu ne peux pas scanner le contenu d'un dossier et être notifié lors de l'ajout d'un plugin dans ce dossier. Tu dois scruter périodiquement et éventuellement mettre à jour le catalogue. Tout ca à la main.
    Ensuite, la dll ne peut pas se balader telle qu'elle, soit elle est dans le xap de l'appli principale, soit elle est dans un xap à part qu'il faut télécharger à la volée.

    Olivier Dahan a écrit sur son blog un très bon whitepaper sur Silverlight et MEF. Je te laisse chercher sur google l'adresse exacte

  5. #5
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 7
    Par défaut
    Merci, je vais regarder cela.

Discussions similaires

  1. MEF - Silverlight - Jounce - Problème avec l'import (je pense)
    Par RichardW2C dans le forum Silverlight
    Réponses: 2
    Dernier message: 02/03/2012, 11h13
  2. [IIS 7.5] acceder à une dll
    Par cataclysme dans le forum IIS
    Réponses: 0
    Dernier message: 05/02/2011, 21h16
  3. applet qui accede à une DLL ?
    Par rimas2009 dans le forum Applets
    Réponses: 1
    Dernier message: 29/05/2009, 01h06
  4. Acceder à une DLL
    Par ggounouman dans le forum Applets
    Réponses: 2
    Dernier message: 30/09/2007, 06h14
  5. Réponses: 4
    Dernier message: 22/02/2006, 18h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo