cs_TrucDeFou
Messages postés22Date d'inscriptiondimanche 5 avril 2009StatutMembreDernière intervention 5 octobre 2010
-
16 juin 2010 à 16:44
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDerniè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.
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 ç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...
cs_TrucDeFou
Messages postés22Date d'inscriptiondimanche 5 avril 2009StatutMembreDerniè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.
cs_saramar
Messages postés17Date d'inscriptionsamedi 10 avril 2004StatutMembreDernière intervention17 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 ;)
cs_saramar
Messages postés17Date d'inscriptionsamedi 10 avril 2004StatutMembreDernière intervention17 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.
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 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 :-)