Problème : Silverlight 3 +WCF + Assembly C#

Résolu
cs_TrucDeFou Messages postés 22 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 5 octobre 2010 - 16 juin 2010 à 16:44
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 19 juin 2010 à 19:43
Bonjour,

Je suis totalement bloqué dans mon dev :

Je développe une application Silverlight 3 qui doit utiliser une assembly déjà existante. J'ai donc développé un WCF que j'ajoute à mon application Silverlight et qui va taper dans l'assembly.

Dans mon application Silverlight
void GetData(object sender, MonService.GetDataCompletedEventArgs e)
        {
            string data = e.Result;
        }


Là il me fait une exception dans le fichier Reference.cs :
Le serveur distant a retourné une erreur : NotFound.

Et ensuite dans le code :
L'exception TargetInvocationException n'a pas été gérée


Voila, maintenant dites moi si je me trompe :
Cet exception ça veut dire que la méthode appelée dans l'assembly lève une exception.
J'ai donc tester cette méthode indépendamment du WCF : Elle fonctionne.
Ensuite j'ai blindé cette méthode de try catch(Exception e){throw new Exception("Ligne X :
" + e.Message)} sur toutes les lignes de codes qui me paraissaient suspectes.
et j'ai mis dans mon WCF :
public string GetData()
        {
            string data = string.Empty;
            try
            {
                data = MaMethodeDansLassembly();
            }
            catch (Exception e)
            {
                data = e.Message;
            }
            return data ;
        }


Donc comme ça elle va me renvoyer l'exception.
Et donc ça m'a renvoyé ça :
Ligne 105 : Une exception a été levée par l'initialiseur de type pour 'Data.EventLogHelper'.

Et la ligne de code en question c'est :
string variableStatic = EventLogHelper.LogEntryTimeFormatString;


Et ça correspond à une variable statique dans une classe statique :
    public static class EventLogHelper
    {
        public static string LogEntryTimeFormatString= "dd/mm/yyyy";
    }


...
Je ne comprends absolument pas pourquoi ça plante à ce niveau. Cette méthode marche parfaitement bien sans passer par le WCF.

Est-ce que quelqu'un a une idée ? Est-ce que j'ai la bonne démarche ? J'espère vraiment pouvoir trouver la solution sinon il faudra que je développe une couche d'accès au données...

Merci

10 réponses

cs_TrucDeFou Messages postés 22 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 5 octobre 2010
17 juin 2010 à 15:25
J'ai trouvé, en fait il y a un problème avec la récupération des infos du fichier de config. Quand je les mets en dur dans le code ça passe.

Pour les constructeurs statiques, c'est un constructeur qui est appelé implicitement une seule fois dès que tu fais un appel à une variable static de la classe.

Je vous remercie de votre aide.
3
cs_TrucDeFou Messages postés 22 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 5 octobre 2010
16 juin 2010 à 18:23
Je n'avais pas vu, mais dans ma classe statique, il y a un constructeur statique.
Et j'ai l'impression que le problème vient de là.
0
cs_saramar Messages postés 17 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 17 juin 2010
17 juin 2010 à 09:59
Oui, une classe statique ne s instancie pas, donc pas de constructeur.
0
SlimH2S Messages postés 10 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 17 juin 2010
17 juin 2010 à 10:07
Faux. Une classe statique s'instancie à travers un constructeur statique.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_saramar Messages postés 17 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 17 juin 2010
17 juin 2010 à 10:14
Dans quel but??
0
cs_saramar Messages postés 17 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 17 juin 2010
17 juin 2010 à 10:15
(Désolé du double post)

L'intérêt d'une classe statique (pour moi) est de pouvoir utiliser ses methodes sans avoir à l'instancier. Après il me reste encore beaucoup à apprendre, donc j'attend ta réponse avec impatience ;)
0
SlimH2S Messages postés 10 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 17 juin 2010
17 juin 2010 à 10:17
Désolé je me suis trompé.
0
cs_saramar Messages postés 17 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 17 juin 2010
17 juin 2010 à 10:20
(Désolé triple post)

Faux. Une classe statique s'instancie à travers un constructeur statique.


Intrigué, j'ai été me renseigner à la source:
http://msdn.microsoft.com/fr-fr/library/79b3xss3%28VS.80%29.aspx

et:

Elles ne peuvent pas être instanciées.


Le problème vient donc probablement de la...
0
cs_saramar Messages postés 17 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 17 juin 2010
17 juin 2010 à 15:37

Pour les constructeurs statiques, c'est un constructeur qui est appelé implicitement une seule fois dès que tu fais un appel à une variable static de la classe.


Merci pour l'eclaircissement ;)
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
19 juin 2010 à 19:43
Bonjour,

Pour les constructeurs statiques, c'est un constructeur qui est appelé implicitement une seule fois dès que tu fais un appel à une variable static de la classe.


Petite précision : ce n'est pas forcément au premier accès à un champ statique.
Dans certains cas, ça peut aussi être au premier accès à une méthode static, voir même (dans le cas de classe qui ne sont pas marquées static) au premier accès à un membre d'instance (ou constructeur) ne touchant pas forcément à un champ static.

Enfin, dans la plupart des cas il n'est pas forcément important de connaitre ces détails :-)


/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous