Bonjour tout le monde,
Je poste ici car j'ai un problème à m'en arracher les cheveux depuis 2-3jours.
Ayant fouillé plusieurs sites à la recherche d'une solution, j'en suis toujours au point mort.
Mon soucis est que je tente, depuis mon projet Silverlight nommé "SGOnline", d’accéder à un service WCF présent sur un projet Asp.Net qui se nomme "SGOnlineWeb" (architecture par défaut d'un projet silverlight).
Mon service, s'appelant "SGOnlineService", contient 3 méthodes, une pour crypter une chaîne de caractères, une pour décrypter (ces deux dernières fonctionnent si je ne met rien d'autre dans le service), et enfin, une qui retourne un objet de type Joueur, présent dans un autre projet nommé "SGOnlineFramework".
Les procédures de cryptage et de décryptage sont toutes deux présente dans une classe d'extention qui est aussi dans SGOnlineFramework, mais pourtant elles fonctionnent, mais dés que je décommente la procédure de récupération d'un joueur, ou d'un enum, j'obtient un beau message d'erreur:
Ma classe joueur est vraiment simple:Erreur 9 Erreur de l'outil personnalisé*: Échec de la génération du code pour la référence de service 'SGOnlineService'. Pour plus d'informations, consultez les autres messages d'erreur et d'avertissement. C:\Users\Aimeric\Desktop\SGOnline\SGOnline\Service References\SGOnlineService\Reference.svcmap 1 1 SGOnline
Jusqu'à son intégration complète, j'ai préféré utiliser une architecture simple, avec seulement un constructeur et un Id.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Activation; namespace SGOnlineFramework { [DataContract] public class Joueur { #region Propriétés private long _id; [DataMember] public long Id { get { return _id; } set { _id = value; } } #endregion #region Méthodes public Joueur(int Id) { _id = Id; } #endregion } }
Dans le même projet "SGOnlineFramework", j'ai aussi un Enum qui me servira pour la classe Joueur, celui-ci ne fonctionnant pas non plus avec le service.
Voici le code du service:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Activation; namespace SGOnlineFramework { [DataContract] public enum EnumEtatJoueur { [EnumMember(Value = "Actif")] Actif, [EnumMember(Value = "Vacances")] Vacances, [EnumMember(Value = "Supprimé")] Supprimé, [EnumMember(Value = "Banni")] Banni } }
Merci d'avance pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 using System; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Activation; using SGOnlineFramework; namespace SGOnlineWeb { [ServiceContract (Namespace="")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class SGOnlineService { [OperationContract] public void DoWork() { // Ajoutez votre implémentation d'opération ici return; } // Ajoutez des opérations supplémentaires ici et marquez-les avec [OperationContract] [OperationContract] public string Crypter(string maString) { return maString.Crypter(); } [OperationContract] public string Décrypter(string maString) { return maString.Décrypter(); } [OperationContract] public Joueur getJoueur() { return new Joueur(12); } [OperationContract] public EnumEtatJoueur GetEnum(EnumEtatJoueur monEnum) { return EnumEtatJoueur.Supprimé; } } }![]()
Partager