OVH Cloud OVH Cloud

LoadControl et cast

3 réponses
Avatar
Thierry Schembri
Bonjour,

Je suis confronté à un probleme bizarre (framework 2.0).

Je fais un truc relativement simple. Je charge un web custom control
nommé "toto.ascx" (la classe du controle est Toto).

Control c = LoadControl("/toto.ascx");

Jusque là, ca passe, je peux bricoler autant que je veux avec c.

Ensuite je fais :

Toto t = (Toto)c;

Là, ca se corse, j'ai parfois alors l'erreur suivante :

"Unable to cast object of type 'ASP.Toto_ascx' to type 'Toto'.

Bêtement, je remplace donc ma ligne par :

ASP.Toto_ascx t = (ASP.Toto_ascx)c;

Et là, très fort j'ai :

"Unable to cast object of type 'ASP.Toto_ascx' to type
'ASP.Toto_ascx'".

Et voilà le travail. Je break, je rebuild tout et ca passe comme une
lettre à la poste, plus d'erreur. Je modifie mon source sans rebuilder
(ailleurs que ces deux lignes) et hop ! erreur à nouveau !!

Quelqu'un a une idée ????

Merci d'avance

3 réponses

Avatar
Delf
Thierry Schembri wrote:

Quelqu'un a une idée ????



Que ce passe-t-il avec : Toto t = (Toto)LoadControl("Toto.ascx") ?

--
Delf
Avatar
Thierry Schembri
> Thierry Schembri wrote:

Quelqu'un a une idée ????



Que ce passe-t-il avec : Toto t = (Toto)LoadControl("Toto.ascx") ?



Peut etre que ca marcherait, mais au moment ou le controle est chargé
je ne sais pas de quel type il est. A moins de caster dynamiquement a
partir du nom de la classe en string (je le fais en Java, on peut le
faire en C# ?), je ne peux pas faire ça. :-((
Avatar
Paul Bacelar
GetType
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemtypeclassgettypetopic1.asp
--
Paul Bacelar

"Thierry Schembri" wrote in message
news:
> Thierry Schembri wrote:
>
>> Quelqu'un a une idée ????
>
> Que ce passe-t-il avec : Toto t = (Toto)LoadControl("Toto.ascx") ?

Peut etre que ca marcherait, mais au moment ou le controle est chargé
je ne sais pas de quel type il est. A moins de caster dynamiquement a
partir du nom de la classe en string (je le fais en Java, on peut le
faire en C# ?), je ne peux pas faire ça. :-((