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

Silverlight Discussion :

RIA Services et persistance


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut RIA Services et persistance
    Hello tout le monde

    J'ai toujours cru qu'on pouvait persister des données dans un DomainService mais ça ne fonctionne pas chez moi.

    Un peu de code.
    Mon RIA Service:

    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
        EnableClientAccess()]
        [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
        [ServiceBehavior(MaxItemsInObjectGraph = Int32.MaxValue, ConcurrencyMode = ConcurrencyMode.Multiple)]
        public class CommonDomainService : DomainService
        {
            private Int32 userID;
                    
            [Invoke]
            public void SetUserID(Int32 userID)
            {
               this.userID = userID;
            }
    
            
            [Invoke]
            public String HelloWorld(String name)
            {
                return "Hello " + name + " - userID: " + userID;
            }    }
    Côté SL, au niveau du App.xaml.cs:
    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
        public partial class App : Application
        {
            private CommonDomainContext commonDomainContext;
            public CommonDomainContext CommonDomainContext
            {
                get
                {
                    if (commonDomainContext == null)
                    {
                        commonDomainContext = new CommonDomainContext();
                    }
                    return commonDomainContext;
                }
            }
    
            private void Application_UserLoaded(LoadUserOperation op)
            {
                if (op.Error == null)
                {
                    CommonDomainContext.SetUserID(23);
                }
                else
                {
                      //...
                }
            }
         }
    Ensuite, au niveau de mon ViewModel
    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
    [Export]
        [PartCreationPolicy(CreationPolicy.Shared)]
        public class MainViewModel : DependencyObject, ICommonViewModel
        {
    
            private RiaServices.CommonDomainContext commonDomainContext
            {
                get
                {
                    return App.Current.CommonDomainContext;
                }
            }
     
     
            public MainViewModel()
            {
                if (!DesignerProperties.IsInDesignTool)
                {
                    Initialize();
                }
            }
     
            // / <summary>
            // / Initialize all the component needed.
            // / </summary>
            private void Initialize()
            {
               commonDomainContext.HelloWorld(App.Current.CurrentUser.Name, HelloCompleted, null);
            }
        }
    Et là, je récupère 0 comme userID.
    Une idée??

    PS: en mode débug, je rentre bien dans ma fonction SetUserID(23)

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Je ne suis pas sur de ma réponse mais le domain service reste du stateless.
    Il y a une copie réalisé entre le client et le serveur.
    Le problème vient alors peut être que la variable et private?

  3. #3
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Pas mieux

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Coté DomainService, stocke tes Id dans un dictionnaire static name/Id et dans ta méthode HelloWorld, accède à la valeur qui correspond au name passé.

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par Thomas Lebrun Voir le message
    Coté DomainService, stocke tes Id dans un dictionnaire static name/Id et dans ta méthode HelloWorld, accède à la valeur qui correspond au name passé.
    Oki

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/11/2009, 08h20
  2. .Net RIA Services et les règles de Validations
    Par Steven62 dans le forum Silverlight
    Réponses: 4
    Dernier message: 26/08/2009, 15h08
  3. Réponses: 2
    Dernier message: 17/07/2009, 16h55
  4. Silverlight 3, RIA Services - En Prévision..
    Par 3KyNoX dans le forum Silverlight
    Réponses: 4
    Dernier message: 17/07/2009, 13h49
  5. XMLParserexection dans DomaiDataSource (.NET Ria Service)
    Par bleuerouge dans le forum Silverlight
    Réponses: 1
    Dernier message: 22/06/2009, 03h43

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