IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Web et réseau > Windows Communication Foundation
        Comment publier une instance particulière d'un objet ?
        Comment publier un objet par client ?
        Comment publier un objet qui ne sert qu'une fois ?



Comment publier une instance particulière d'un objet ?
auteur : dev01
Pour publier une instance particulière d'une classe il suffit de la passer au constructeur de la classe ServiceHost.
Il faut également que la classe qui remplit le contrat soit décorée avec l'attribut ServiceBehavior et définir le paramètre InstanceContextMode à Single


          
[[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class A : WcfInterface
{
	private string i;
	public string I
	{
		get
		{
			return i;
		}
	}
}

// ..........
A monInstance = new A();
ServiceHost host = new ServiceHost(typeof(A);
host.Open();

        
Attention dans ce cas comme dans celui de l'utilisation d'un objet par appel vous devez avoir un constructeur sans argument de défini.

lien : fr System.ServiceModel.ServiceBehaviorAttribute (MSDN)
lien : fr Une introduction à WCF

Comment publier un objet par client ?
auteur : dev01
Afin que l'objet soit unique pour le client mais différent pour chaque client
vous devez définir plusieurs contraintes :


          
[[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
public class A : WcfInterface
{
	private string i;
	public string I
	{
		get
		{
			return i;
		}
	}
}

// ..........

ServiceHost host = new ServiceHost(monInstance);
host.Open();

        
lien : fr Une introduction à WCF

Comment publier un objet qui ne sert qu'une fois ?
auteur : dev01
Pour utiliser un objet qui ne sert qu'une fois pour un appel à une fonction
il faut définir ServiceBehavior avec la valeur PerCall


          
[[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
public class A : wcfInterface
{
	private string i;
	public string I
	{
		get
		{
			return i;
		}
	}
}

// ..........

ServiceHost host = new ServiceHost(monInstance);
host.Open();


        
lien : fr Une introduction à WCF


Consultez les autres F.A.Q's


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2010 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.