laurent_apo
Messages postés3Date d'inscriptionlundi 18 avril 2005StatutMembreDernière intervention 1 août 2006
-
1 août 2006 à 11:31
laurent_apo
Messages postés3Date d'inscriptionlundi 18 avril 2005StatutMembreDernière intervention 1 août 2006
-
1 août 2006 à 16:51
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 ??
laurent_apo
Messages postés3Date d'inscriptionlundi 18 avril 2005StatutMembreDernière intervention 1 août 2006 1 août 2006 à 16:12
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
laurent_apo
Messages postés3Date d'inscriptionlundi 18 avril 2005StatutMembreDernière intervention 1 août 2006 1 août 2006 à 16:51
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);