Pb classes identiques dans 2 namespaces

Signaler
Messages postés
3
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
1 août 2006
-
Messages postés
3
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
1 août 2006
-
bonjour,
je dispose d'une solution contenant plusieurs webservices et plusieurs projets (appelant ou pas ces webservices).

 pour résumé j'ai  :
- une bibliothèque de classes B1 utilisée un peu partout dans les projets et Webservices.
- un webservice WS1, dans lequel j'ai importé B1.
- un projet P1, dans lequel j'ai importé B1 et le webservice WS1.

mon problème est le suivant :
Lorsque j'appelle une WebMethode de WS1 avec en retour un objet ayant une définition dans B1, depuis mon projet P1, j'ai une erreur de compilation.
Cette erreur précise que l'objet attendu (et/ou les paramètres passés lors de l'appel) ne sont pas du type attendu.
En effet malgré que les objets proviennent d'une classe identique (B1) ils appartiennent à 2 namespaces différents (celui du WS1 et celui de P1) d'où l'erreur à la compil.
J'ai essayé de forcer en castant les objets dans les types attendus, mais Dotnet m'interdit ce cast toujours pour la même raison.

Existe-t-il une solution de cast d'un objet identique dans des namespaces différents ??

Merci d'avance pour votre collaboration.

4 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
37
hum... en gros la bonne solution, c'est de créer un projet dans lequel tu mets B1.


ensuite tu références le projet B1 dans les autres projets... ca marche nettement mieux comme cela.






Sébastien FERRAND
(

blog
)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
3
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
1 août 2006

C'est ce que j'ai fait et noté dans le début de mon 1er post ...

pour résumé j'ai  :
- une bibliothèque de classes B1 utilisée un peu partout dans les projets et Webservices.
- un webservice WS1, dans lequel j'ai importé B1.
- un projet P1, dans lequel j'ai importé B1 et le webservice WS1.

Ma bibliothèque B1 est un projet compilé sous forme de Dll, puis imprté par référence dans mes autres projets .... je pensais moi aussi que cela devait fonctionner mais non
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
37
Ton problème doit venir d'ailleur...

je fais ca tous les jours dans le boulot...

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
3
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
1 août 2006

Je vais tacher d'être plus précis :

ma webmethod dans mon ws est la suivante :

[
WebMethod]

public
CSuiviAct GetSuiviAct(
CSLogin login,
int p_id_suiviact)
{
.....
}

Avec CSLogin définie dans ma bibliothèque B1 importée par référence dans mon projet webservice.

Dans mon projet Winform, j'ai l'appel suivant :

{ ...


WS_Kyrano_Tache.WS_Kyrano_Tache ws = new  WS_Kyrano_Tache.
WS_Kyrano_Tache();
CSLogin login_saisi= new CSLogin();

sva =
ws.GetSuiviAct(
login_saisi, (
int)
CSSession.utilisateur.id_utilisateur);

...}

Avec (de la même façon que dans le ws ), CSLogin définie dans ma bibliothèque B1 importée par référence dans mon projet WinForm.

et à la compilation, j'ai l'erreur sur login_saisi,
et un message précisant que login_saisi doit être du type : MonNamespace.ws.CSLogin et non pas CSLogin simplement.

PS : j'ai essayé un cast du type :
sva = ws.GetSuiviAct( (MonNamespace.ws.CSLogin) login_saisi, (int)CSSession.utilisateur.id_utilisateur);

mais sans succès

Merci pout ton aide.