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.

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 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
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;
	}
La méthode droitUtilisateur n'est pas accessible côté client alors que le reste si. Comment faire ? Meci !!!