begin process at 2010 02 09 16:29:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Système

 > 

Autre

 > 

Probème de détection AddIn incompréhensible


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probème de détection AddIn incompréhensible

vendredi 21 novembre 2008 à 11:37:44 | Probème de détection AddIn incompréhensible

teddyalbina

Bonjour,

J'ai posté il a plusieurs jours un message concernant mes problèmes avec System.AddIn. Après avoir retourné et lu 50 fois mon code je n'ai rien trouvé de louche. J'ai donc décidé d'en avoir le coeur net et j'ai changé System.AddIn par MEF. dans mon application de teste tout roule
si je colle tout simplement le même code dans mon autre application rien de fonctionne je ne comprend pas d'où vient le problème. Voici mon code teste.
class Teste<T>
    {
        [Import]// attribut marquant une propriété importée depuis les addins découverts
        public IEnumerable<T> Operations {get; privateset; }
        private Dictionary<string, List<string>> m_PluginsArray = new Dictionary<string, List<string>>()
        {
            {"AddinHttp", new List<string>(){"http", "https"}}
        };
        publicvoid Compose()
        {
            // création du catalogue. Les addins sont dans le répertoire de l'exe
            DirectoryPartCatalog catalog = new DirectoryPartCatalog(@"Addins", true);
            // créé le conteneur
            CompositionContainer container = new CompositionContainer(catalog.CreateResolver());
            // ajoute this pour qu'il puisse être lié via ses attributs 'import'
            container.AddPart(this);
            // réalise la composition (connexion de tous les exports à tous les imports)
            container.Compose();
        }
 
        public T GetAddInToken(string key)
        {
            var x = from v in m_PluginsArray
                    where v.Value.Contains(key)
                    select v.Key;
 
            foreach(string addinName in x)
            {
                foreach(T _token in Operations)
                {
                    if(_token.GetType().Name.Equals(addinName))
                        return _token;
                } 
            }
 
            returndefault(T);
        }
    }
 
    class Program
    {
 
        staticvoid Main(string[] args)
        {
           Teste<IProtocol> T = new Teste<IProtocol>();
           T.Compose();
           Stopwatch w = new Stopwatch();
           w.Start();
           IProtocol operation = T.GetAddInToken("http");
           Console.WriteLine(w.ElapsedMilliseconds + "ms");
           w.Stop();
           RequestState r = operation.Download(null, null, null);
           Console.WriteLine(">> " + r.Extension


T est le type d'AddIn que je souhaite chargé ici ceux qui implémente l'interface IProtocol que voila:

    publicinterface IProtocol
    {
        RequestState Download(Attributes<string, int, DateTime, DateTime, int, string, string> downloadata, X509Certificate[] certificates, X509Certificate[] certificates2);
        IEnumerable Download(Attributes<string, int, DateTime, DateTime, int, string, string> downloadata, X509Certificate[] certificates, X509Certificate[] certificates2, bool n);
        string Accept {get; set; }
        Uri Proxy {get; set; }
    }


et mon Addin de teste que voila :

    [Export(typeof(IProtocol))]
    publicclass AddinHttp : IProtocol
    {
        #region IProtocol Membres
        publicstring Accept {get; set; }
        public Uri Proxy {get; set; }
 
        public RequestState Download(Attributes<string, int, DateTime, DateTime, int, string, string> downloadata, X509Certificate[] certificates, X509Certificate[] certificates2)
        {
            return(new RequestState(){ Extension = "Hello"});
        }
        public IEnumerable Download(Attributes<string, int, DateTime, DateTime, int, string, string> downloadata, X509Certificate[] certificates, X509Certificate[] certificates2, bool n)
        {
            yield return(new RequestState(){ Extension = "Hello"});
        }
 
        #endregion
    }


Bref de l'ultra simple pour teste ce code fonctionne niquel rien à redire.


Maintenant pour voir d'ou vient mon souci j'ai tout simplement copie/collé la classe Teste<t> dans mon web crawler. Implementer IProtocol dans mon seul et unique AddIn pour le moment.

Mais la parcontre rien ne fonctionne voici mon code :

namespace WebCrawler
{
    class Teste<T>
    {
        [Import]// attribut marquant une propriété importée depuis les addins découverts
        public IEnumerable<T> Operations {get; privateset; }
        private Dictionary<string, List<string>> m_PluginsArray = new Dictionary<string, List<string>>()
        {
            {"AddinsHttp", new List<string>(){"http", "https"}}
        };
        publicvoid Compose()
        {
            // création du catalogue. Les addins sont dans le répertoire de l'exe
            DirectoryPartCatalog catalog = new DirectoryPartCatalog(@"AddIns", true);
            // créé le conteneur
            CompositionContainer container = new CompositionContainer(catalog.CreateResolver());
            // ajoute this pour qu'il puisse être lié via ses attributs 'import'
            container.AddPart(this);
            // réalise la composition (connexion de tous les exports à tous les imports)
            container.Compose();
        }
        public T GetAddInToken(string key)
        {
            var x = from v in m_PluginsArray
                    where v.Value.Contains(key)
                    select v.Key;
            foreach(string addinName in x)
            {
                foreach(T _token in Operations)
                {
                    if(_token.GetType().Name.Equals(addinName))
                        return _token;
                }
            }
            returndefault(T);
        }
    }
 
    class Program : BlueCurve.Common.InteractiveConsole.BaseConsole
    {
        #region 'Functions'
        staticvoid Main(string[] argv)
        {
            // Création du répertoire de sauvegarde
            if(!Directory.Exists(ConfigurationManager.AppSettings["DownloadedFilesDestination"]))
                Directory.CreateDirectory(ConfigurationManager.AppSettings["DownloadedFilesDestination"]);
 
            Teste<IProtocol> m = new Teste<IProtocol>();
              m.Compose();
            BlueCurve.Plugins.IProtocol e = m.GetAddInToken("http");
            if(e != null)
                Console.WriteLine("ok");
            else
                Console.WriteLine("null");



Pour l'AddIn etc... tout est pareil que dans mon application de teste pourtant sa ne fonctionne pas .

Avez vous une idée du pourquoi du comment de mon problème parce que je n'y comprend plus rien ?


Merci .


Cette discussion est classée dans : string, datetime, teste, addin, iprotocol


Répondre à ce message

Sujets en rapport avec ce message

Rafraichissement date [ par taoetc ] bonjour voila mon problèmedans une boucle, je dois rafraichir la date jusqu'au millisecond, voi nano second ( je fais des inserts et la date me sert DateTime + Helpppp [ par emmanuel9 ] Bonjour à tous, En faite mon problème est le suivant : J'ai un dateTime sous forme 05/02/2005  et je voudrais l'obtenir sous forme 20050602 Donc traitement d'image [ par DavDav02 ] Bonjour à tous, J'ai un projet qui consiste à effectuer une capture d'image à l'aide d'une webcam branchée en usb (voir code ci dessous). Jusque là, t Conversion string en Datetime [ par zoostation ] bonjour, je souhaiterai convertir une chaine de caractère de type "20051020" en datetime. Merci de votre reponse. Problème lors de la détection de mes Addin-in (System.Addin) [ par teddyalbina ] Bonjour j'ai un soucis avec System.Addin qui ne détecte pas mes addins. Cela fait plusieurs jours que je cherche une solution mais je sèche donc voici Probleme DateTime [ par drcmomo ] Bonjour tout le monde ,J'ai un petit sourcis d'insertion de données dans une colonne d'un tableVoila j'ai une dataGrille dans laquelle je rentre une u L'heure dans numericUpDown [ par snakzbenjy ] Bonjour à tous,J'aimerai afficher l'heure dans un "numericUpDown".Ce que je souhaite réaliser:   ******A l'ouverture de la Form l'heure actuelle s'aff Cannot implicitly convert type 'string' to 'System.DateTime' [ par hicham_899 ] salut j'ai utlisé un procedure stocké par deux paramétre (string and date) dans un procédure pour imprimer un etat avec le code suivent :totaljourneeT Est ce que ce code est du HttpUnit???? [ par sandra26 ] Salut, jai une question tres simple et idiote mais je ne connais pas la reponse.LE code suivant me permet d'envoyer des requetes et de recevoir des re


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales