Partage
  • Partager sur Facebook
  • Partager sur Twitter

sérialiser un bouton windform

    22 mai 2018 à 17:09:20

    Bonjour, 

    Je me retrouve avec l'erreur suivante : Une exception non gérée du type 'System.Runtime.Serialization.SerializationException' s'est produite dans MyApp.exe

    Informations supplémentaires : Le type 'MyApp.Plugin1' dans l'assembly 'MyApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' n'est pas marqué comme sérialisable.

    J'ai cherche un peu et je me demande si ce n'est pas le bouton qui pose probleme. 

    Sinon connaisez vous de bon tuto pour apprendre a faire des app domain ?

    Merci d'avance !

    ps : je peux vous envoyer le code si besoin

    • Partager sur Facebook
    • Partager sur Twitter
      22 mai 2018 à 18:02:19

      Bonjour,

      Oui avec le code ça serait quand même plus pratique.

      • Partager sur Facebook
      • Partager sur Twitter
      MysteryDash / 100 MPM / Développeur Freelance C#.NET / osu! / PS4 Offline Remote Play
        23 mai 2018 à 9:33:56

        MysteryDash a écrit:

        Bonjour,

        Oui avec le code ça serait quand même plus pratique.

        public void test()
                {
                    ICollection<IPlugin> plugins = PluginLoader.LoadPlugins("Plugins");
                    foreach (IPlugin item in plugins)
                    {
                        AppDomain securedDomain = AppDomain.CreateDomain("securedDomain");
                        Type test = typeof(Plugin1);
                        securedDomain.CreateInstanceAndUnwrap(test.Assembly.FullName, test.FullName);
                        richTextBox1.Text += "sa marche";
                    }
                }
                
                public Form1()
                {
                    InitializeComponent();
                    
                }
        
               
                private void button1_Click(object sender, EventArgs e)
                {
                    test();
                }
        Je souhaite créer une app domaine pour chaque plugin. Sa fonctionne sauf si je met test() dans mon bouton. C'est a ce moment la qu'il me dit que MyApp.Plugin1 n'est pas sérializable.


        • Partager sur Facebook
        • Partager sur Twitter
          23 mai 2018 à 12:20:31

          Rien à voir avec le souci (a priori) mais c'est quoi l'intérêt de faire un système de Plugin si ton interface connait les différents types de plugins.

          C'est peut-être moi qui qui me plante, mais tel que je conçois les choses Form1 ne devrait pas savoir que Plugin1 existe (idem avec Plugin2 ... Plugin1000, PluginToto, etc.) ; la seule chose qu'elle devrait connaitre c'est IPlugin, et ne manipuler que ça, que derrière se cache un Plugin1 ou un Plugin42 elle a pas besoin de savoir ; ou alors j'ai rien compris.

          • Partager sur Facebook
          • Partager sur Twitter
          Censément, quelqu'un de sensé est censé s'exprimer sensément.
            23 mai 2018 à 14:10:07

            Sehnsucht a écrit:

            Rien à voir avec le souci (a priori) mais c'est quoi l'intérêt de faire un système de Plugin si ton interface connait les différents types de plugins.

            C'est peut-être moi qui qui me plante, mais tel que je conçois les choses Form1 ne devrait pas savoir que Plugin1 existe (idem avec Plugin2 ... Plugin1000, PluginToto, etc.) ; la seule chose qu'elle devrait connaitre c'est IPlugin, et ne manipuler que ça, que derrière se cache un Plugin1 ou un Plugin42 elle a pas besoin de savoir ; ou alors j'ai rien compris.


            Dans ce cas comment faire pour que quand j'appui sur le bouton 1 il n'y a que lui qui s'affiche. Mais sinon il me semble que j'avais effectivement entendu parler de ça...
            • Partager sur Facebook
            • Partager sur Twitter
              23 mai 2018 à 17:35:35

              J'imagine que dans ton interface IPlugin t'as un moyen d'identifier de manière unique tes plugins ; genre un Id ou à défaut un Nom. Du coup tu peux très bien chercher ta collection de IPlugin pour en retirer celui qui a l'ID voulu sans savoir si derrière c'est un PLugin42 ou un PluginToto. C'est un peu tout l'intérêt du truc...
              • Partager sur Facebook
              • Partager sur Twitter
              Censément, quelqu'un de sensé est censé s'exprimer sensément.

              sérialiser un bouton windform

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown