none
Service WCF variable publique non persistante RRS feed

  • Question

  • Bonjour,

    La propriété implémenté si dessous ne conserve pas sa valeur :

    Public _EstIdentifie As Boolean
        Property EstIdentifie As Boolean
            Get
                Return _EstIdentifie
            End Get
            Set(value As Boolean)
                _EstIdentifie = value
            End Set
        End Property

    En fait en mode debug , je m'aperçois qu'a chaque appele à un OperationContract déclenche un new dans la classe.

    comment pourrais je conserver la valeur?


    FB

    mardi 5 juin 2012 09:52

Réponses

  • Bonjour,

    Il faut mettre le signe ":=" lorsque vous affectez une valeur à une propriété des attributs.

    <ServiceBehavior(InstanceContextMode:=InstanceContextMode.Single)>

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    dimanche 17 juin 2012 13:32
    Modérateur

Toutes les réponses

  • Bonjour François,

    Pour qu'une instance d'un object soit unique (singleton), il faut modifer le behavior du service en ajoutant l'attibut suivant davant la définition de la classe (ex: class Service

    <ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)>
    public Service As Class
    Implement IService 


    Jérémy Jeanson MVP, MCP, MCTS http://blogs.codes-sources.com/JeremyJeanson/ (French or English spoken)

    mardi 5 juin 2012 12:38
    Modérateur
  • InstanceContextMode n'est pas reconnue ça ne compile pas


    FB

    mardi 5 juin 2012 12:56
  • Bonjour,

    Avez-vous fait un :

    Imports System.ServiceModel
    en haut de votre fichier ?
     

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    mardi 5 juin 2012 13:54
    Modérateur
  • oui

    L'erreur est :

    Erreur 9 'InstanceContextMode' est un type et ne peut pas être utilisé en tant qu'expression. 

    Pour info: j'ai fait comme ceci :

    Imports System.Data.SqlClient
    Imports CatWebLib
    Imports System.ServiceModel.Description
    Imports Microsoft.Web.Administration
    Imports System.ServiceModel
    Public Structure Retour
        Dim Erreur As Boolean
        Dim Message As String
    End Structure
    
    ' REMARQUE : si vous modifiez le nom de classe « CatWebWCF » ici, vous devez également mettre à jour la référence à « CatWebWCF » dans Web.config et dans le fichier .svc associé.
    <ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)> _
    Public Class CatWebWCF
        Implements ICatWebWCF
    .....
    


    FB


    mardi 5 juin 2012 13:57
  • Bonjour,

    Il faut mettre le signe ":=" lorsque vous affectez une valeur à une propriété des attributs.

    <ServiceBehavior(InstanceContextMode:=InstanceContextMode.Single)>

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    dimanche 17 juin 2012 13:32
    Modérateur