Problème : Silverlight 3 +WCF + Assembly C# [Résolu]

Messages postés
22
Date d'inscription
dimanche 5 avril 2009
Statut
Membre
Dernière intervention
5 octobre 2010
- - Dernière réponse : cs_coq
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
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
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
22
Date d'inscription
dimanche 5 avril 2009
Statut
Membre
Dernière intervention
5 octobre 2010
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 116 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_TrucDeFou
Messages postés
22
Date d'inscription
dimanche 5 avril 2009
Statut
Membre
Dernière intervention
5 octobre 2010
0
Merci
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à.
Commenter la réponse de cs_TrucDeFou
Messages postés
17
Date d'inscription
samedi 10 avril 2004
Statut
Membre
Dernière intervention
17 juin 2010
0
Merci
Oui, une classe statique ne s instancie pas, donc pas de constructeur.
Commenter la réponse de cs_saramar
Messages postés
10
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
17 juin 2010
0
Merci
Faux. Une classe statique s'instancie à travers un constructeur statique.
Commenter la réponse de SlimH2S
Messages postés
17
Date d'inscription
samedi 10 avril 2004
Statut
Membre
Dernière intervention
17 juin 2010
0
Merci
Dans quel but??
Commenter la réponse de cs_saramar
Messages postés
17
Date d'inscription
samedi 10 avril 2004
Statut
Membre
Dernière intervention
17 juin 2010
0
Merci
(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 ;)
Commenter la réponse de cs_saramar
Messages postés
10
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
17 juin 2010
0
Merci
Désolé je me suis trompé.
Commenter la réponse de SlimH2S
Messages postés
17
Date d'inscription
samedi 10 avril 2004
Statut
Membre
Dernière intervention
17 juin 2010
0
Merci
(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...
Commenter la réponse de cs_saramar
Messages postés
17
Date d'inscription
samedi 10 avril 2004
Statut
Membre
Dernière intervention
17 juin 2010
0
Merci

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 ;)
Commenter la réponse de cs_saramar
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
0
Merci
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
*/
Commenter la réponse de cs_coq

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.