2010-02-21 7 views
3

J'ai un webservice - appelé MyCompany.WebService1ASMX Web Mise à jour de référence ne Service après retour Mise à jour Type

Je ferai référence à cette aide d'une référence web dans mon application Web ASP.net.

Il existe une méthode appelée "GetDeal" dans ce service Web, qui renvoie un objet "Deal". L'objet affaire semble actuellement (par exemple) comme ceci:

public class Deal 
{ 
    Public string Name {get;set;} 
    Public string Description {get;set;} 
} 

Cette classe est dans un autre assemblage: MyCompany.Model

Les références de service Web cette assemblée.

Dans mon application Web, je peux appeler la méthode GetDeal. Cela renvoie Service1.Deal (service1 est juste le nom de la référence Web)

Je peux accéder aux deux propriétés ci-dessus.

J'ai maintenant changé la classe Deal et ajouté quelques propriétés supplémentaires. Cependant, je ne peux pas voir ces nouvelles propriétés dans mon application Web.

J'ai mis à jour le service Web dans l'application Web. J'ai reconstruit le service web plusieurs fois, j'ai essayé de supprimer la référence MyCompany.Model et de la rajouter etc ...

Je n'arrive pas à comprendre ce qui a changé ... Cela a fonctionné - J'ai changé le modèle avant, et il a mis à jour la référence correctement ...

Tout ce que j'ai manqué?

Répondre

5

Tant que les points suivants sont remplies, cela devrait fonctionner:

  • la nouvelle propriété est marquée comme Public et doit être en lecture/écriture (doit avoir un getter et un setter)
  • vous avez compilé l'application Web hôte (l'application Web qui expose le service Web).
  • (Vous pouvez essayer d'appeler le service Web dans un navigateur Web pour vérifier si la nouvelle propriété est visible).
  • vous avez mis à jour la référence Web l'application cliente (et reconstruit l'application)
+2

Encore plus à ajouter: La nouvelle propriété doit avoir une méthode 'set'. Cela a été la cause de quelques égratignures dans le passé. – Aaronaught

+0

@aaronaught - MERCI !!! c'était ça! – Alex

+0

C'était précis, merci. –

2

En plus de ce que Martin suggère, vous devez effectivement terme le service mis à jour.

Je vous recommande de regarder le WSDL pour voir si les changements ont pris effet. Ajoutez "? Wsdl" à l'URL du service Web dans le navigateur et vérifiez si vos nouvelles propriétés apparaissent dans le schéma XML en haut.