IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Discussion :

operation contract, exposer une méthode côté client


Sujet :

Services Web

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 436
    Par défaut operation contract, exposer une méthode côté client
    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 !!!

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut Kikuts,

    A première vue, je dirais qu'il te manque l'élément "[WebMethod]"... pour rendre accessible ta méthode droitutiisateur(). Bon maintenant avec ta façcon de faire "[OperationContract()]" que je n'ai pas l'habiture d'utiliser, est-ce qu'il y aurait d'autres attributs te permettant de rendre ta méthode visible à l'extérieur ("[OperationContract(), attributs???]"!!!!

    Cédric

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/09/2011, 10h22
  2. Exposer en Web Service une méthode d'une classe
    Par h.daly dans le forum Services Web
    Réponses: 1
    Dernier message: 18/04/2010, 21h49
  3. Bonne méthode pour la création d'une application graphique cliente
    Par kayoum dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 22/01/2009, 12h12
  4. Réponses: 7
    Dernier message: 04/02/2008, 13h19
  5. Problème d'exposant sur une méthode mathématique.
    Par ecobarito dans le forum Débuter
    Réponses: 14
    Dernier message: 29/08/2007, 20h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo