Bonjor à vous !
Voici mon problème :
j'ai un service web qui lors de l'appel d'une méthode, accède à une base de données et construit un objet utilisateur grâce à plusieurs requête.
L'objet utilisateur est de type Utilisateur, définit dans un fichier Utilisateur.cs du côté de mon webservice.
Cette classe possède plusieurs propriétés et 1 méthode. Simplement lorsque je charge mon service web à partir de mon application silverlight, les propriétés sont accessibles, mais je ne vois pas la méthode !
De quel attribut dois je décorer ma classe Utilisateur, ma méthode getUtilisateur pour qu'elle soit accessible depuis l'extérieur sans avoir à recréer une classe cpoté client qui hérite de ................. blablabla ^^
Le code parlant plus à certains voici mon service web suivit de la classe Utilisateur.
La classe utilisateur :
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 [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class Service_connexion : IService_connexion { /// <summary> /// Récupérer le user connécté avec son profil (notamment pour récupérer ses droits). /// </summary> /// <param name="login">login de l'utilisateur stocké dans la base de données</param> /// <returns>Retourne un objet Utilisateur</returns> /// Utilisateur IService_connexion.getUtilisateur(string login) { try { SPDataContext dc = new SPDataContext(); wap__authentificationResult u = dc.wap__authentification(login).First(); Utilisateur user = new Utilisateur { _UserId = u.User_id, _UserCode = u.User_login, _EmployeId = u.Employe_id.Value, _EmployeNom = u.Employe_nom, _Agence = new AGENCE { AGC_ID = u.Agence_id, AGC_LIBELLE = u.Agence_nom } }; user.setDroits(dc.wap__droits(u.User_id).ToList()); return user; } catch (Exception) { return null; } }
La méthode droitUtilisateur n'est pas accessible côté client alors que le reste si. Comment faire ? Meci !!!
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87 [DataContract()] public class Utilisateur { /// <summary> /// Numéro d'identification d'utilisateur. /// </summary> /// [DataMember()] public int _UserId { get; set; } /// <summary> /// Login de l'utilisateur. /// </summary> /// [DataMember()] public string _UserCode { get; set; } /// <summary> /// Numéro d'identification employé. /// </summary> /// [DataMember()] public int _EmployeId { get; set; } /// <summary> /// Nom de l'employé. /// </summary> /// [DataMember()] public string _EmployeNom { get; set; } /// <summary> /// Agence de l'utilisateur. /// </summary> /// [DataMember()] public AGENCE _Agence { get; set; } /// <summary> /// Liste des droits de l'utilisateur /// >> 0 - aucun droits /// >> 1 - droit de lecture /// >> 2 - droit d'écriture /// >> 3 - droit total / spécial /// </summary> /// //[DataMemberAttribute()] public List<wap__droitsResult> _Droits { get; set; } /// <summary> /// Stocke la liste des droits utilisateurs. /// </summary> /// <param name="lesDroits">liste d'objet wap__droitsResult</param> /// public void setDroits(List<wap__droitsResult> lesDroits) { if (lesDroits != null) { if (_Droits == null) _Droits = new List<wap__droitsResult>(); _Droits = lesDroits; } } /// <summary> /// Permet de savoir si un utilisateur à le droit de se connecter à un formulaire ou pas et de savoir l'étendu de ses privilèges. /// </summary> /// <param name="libelleDroit">Nom du droit</param> /// <returns> /// >> 0 - aucun droits /// >> 1 - droit de lecture /// >> 2 - droit d'écriture /// >> 3 - droit total / spécialentier /// </returns> /// [OperationContract()] public int droitUtilisateur(string libelleDroit) { foreach (wap__droitsResult d in _Droits) { if (d.Droit_nom == libelleDroit) return d.Droit_valeur.Value; } return 0; }
Partager