Via le remoting,
j'instancie un objet depuis le client avec la m=E9thode Activator.CreateI=
nstance(type).
La classe de cet objet poss=E8de un membre static.
C=F4t=E9 serveur, bien que j'initialise ce membre static avant de de regi=
strer la classe (en Singleton),
et pourtant il n'est pas initialis=E9 dans l'instance que je r=E9cup=E8re=
c=F4t=E9 client.
en code "raccourci" =E7a donne :
common.cs
class RemoteObject {
public static toto =3D 123 ;
}
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Paul Bacelar
Pour Thomas, cette définition de static n'est valable quand C.
C'est particulièrement inélégant d'utiliser de cette manière des statics.
Vous avez en faite 2 static, car une variable static est liée à un type chargé, ce même type n'a de sens que dans un AppDomain. Vous avez 2 AppDomain, celui du client et celui du serveur, donc 2 statics qui pour l'une est mise à jour dans le serveur et pour l'autre conserve la valeur initialisé dans le constructeur de la class (BEURK!)
Paul Bacelar
"Lebrun Thomas" <lebrun_thomas_at_hotmail.com> wrote in message news:
Une variable static n'est utilisable que dans le fichier où elle est
déclarée.
En esperant que cela t'aide....
A+
------------------- Thomas LEBRUN http://morpheus.developpez.com
"cyrille" wrote:
> Bonjour, > > Si quelqu'un pouvait m'éclairer sur ce point : > > Via le remoting, > j'instancie un objet depuis le client avec la méthode
Activator.CreateInstance(type).
> > La classe de cet objet possède un membre static. > Côté serveur, bien que j'initialise ce membre static avant de de
registrer la classe (en Singleton),
> et pourtant il n'est pas initialisé dans l'instance que je récupère côté
client.
> > en code "raccourci" ça donne : > > common.cs > > class RemoteObject { > public static toto = 123 ; > } > > serveur.cs > > RemoteObject.toto = 789 ; >
> Debug.WriteLine("toto = "+rm.toto); > > Et bien ça écrit : > toto = 123 > Alors que je m'attendais à voir > toto = 789 > > Merci pour vos lumières ;o) > > cyrille > > >
Pour Thomas, cette définition de static n'est valable quand C.
C'est particulièrement inélégant d'utiliser de cette manière des statics.
Vous avez en faite 2 static, car une variable static est liée à un type
chargé, ce même type n'a de sens que dans un AppDomain. Vous avez 2
AppDomain, celui du client et celui du serveur, donc 2 statics qui pour
l'une est mise à jour dans le serveur et pour l'autre conserve la valeur
initialisé dans le constructeur de la class (BEURK!)
Paul Bacelar
"Lebrun Thomas" <lebrun_thomas_at_hotmail.com> wrote in message
news:A4F7D633-9637-4B7E-9E81-4CDD389C3BFC@microsoft.com...
Une variable static n'est utilisable que dans le fichier où elle est
déclarée.
En esperant que cela t'aide....
A+
-------------------
Thomas LEBRUN
http://morpheus.developpez.com
"cyrille" wrote:
> Bonjour,
>
> Si quelqu'un pouvait m'éclairer sur ce point :
>
> Via le remoting,
> j'instancie un objet depuis le client avec la méthode
Activator.CreateInstance(type).
>
> La classe de cet objet possède un membre static.
> Côté serveur, bien que j'initialise ce membre static avant de de
registrer la classe (en Singleton),
> et pourtant il n'est pas initialisé dans l'instance que je récupère côté
client.
>
> en code "raccourci" ça donne :
>
> common.cs
>
> class RemoteObject {
> public static toto = 123 ;
> }
>
> serveur.cs
>
> RemoteObject.toto = 789 ;
>
> Debug.WriteLine("toto = "+rm.toto);
>
> Et bien ça écrit :
> toto = 123
> Alors que je m'attendais à voir
> toto = 789
>
> Merci pour vos lumières ;o)
>
> cyrille
>
>
>
Pour Thomas, cette définition de static n'est valable quand C.
C'est particulièrement inélégant d'utiliser de cette manière des statics.
Vous avez en faite 2 static, car une variable static est liée à un type chargé, ce même type n'a de sens que dans un AppDomain. Vous avez 2 AppDomain, celui du client et celui du serveur, donc 2 statics qui pour l'une est mise à jour dans le serveur et pour l'autre conserve la valeur initialisé dans le constructeur de la class (BEURK!)
Paul Bacelar
"Lebrun Thomas" <lebrun_thomas_at_hotmail.com> wrote in message news:
Une variable static n'est utilisable que dans le fichier où elle est
déclarée.
En esperant que cela t'aide....
A+
------------------- Thomas LEBRUN http://morpheus.developpez.com
"cyrille" wrote:
> Bonjour, > > Si quelqu'un pouvait m'éclairer sur ce point : > > Via le remoting, > j'instancie un objet depuis le client avec la méthode
Activator.CreateInstance(type).
> > La classe de cet objet possède un membre static. > Côté serveur, bien que j'initialise ce membre static avant de de
registrer la classe (en Singleton),
> et pourtant il n'est pas initialisé dans l'instance que je récupère côté
client.
> > en code "raccourci" ça donne : > > common.cs > > class RemoteObject { > public static toto = 123 ; > } > > serveur.cs > > RemoteObject.toto = 789 ; >
> Debug.WriteLine("toto = "+rm.toto); > > Et bien ça écrit : > toto = 123 > Alors que je m'attendais à voir > toto = 789 > > Merci pour vos lumières ;o) > > cyrille > > >
Zazar
Bonjour,
> Pour Thomas, cette définition de static n'est valable quand C.
Oui, je sais ;) Mais je n'ai pas trouvé la définition du static en C#, j'ai donc supposé
que
c'était la même. Mais merci de m'avoir corriger :)
Si je puis me permettre : ce n'est pas la première fois que vous attribuez à un language une caractèristique d'un autre language sans faire de vérifications. Vous devriez éviter de faire ce genre d'hypothèses dangereuses . Sinon, une petite recherche sur google vous permettrait de trouver assez facilement ce que signifie le mot-clef static.
-- Zazar
Bonjour,
> Pour Thomas, cette définition de static n'est valable quand C.
Oui, je sais ;)
Mais je n'ai pas trouvé la définition du static en C#, j'ai donc supposé
que
c'était la même.
Mais merci de m'avoir corriger :)
Si je puis me permettre : ce n'est pas la première fois que vous attribuez à
un language une caractèristique d'un autre language sans faire de
vérifications. Vous devriez éviter de faire ce genre d'hypothèses
dangereuses .
Sinon, une petite recherche sur google vous permettrait de trouver assez
facilement ce que signifie le mot-clef static.
> Pour Thomas, cette définition de static n'est valable quand C.
Oui, je sais ;) Mais je n'ai pas trouvé la définition du static en C#, j'ai donc supposé
que
c'était la même. Mais merci de m'avoir corriger :)
Si je puis me permettre : ce n'est pas la première fois que vous attribuez à un language une caractèristique d'un autre language sans faire de vérifications. Vous devriez éviter de faire ce genre d'hypothèses dangereuses . Sinon, une petite recherche sur google vous permettrait de trouver assez facilement ce que signifie le mot-clef static.