J'ai envoyé des objets avec succès à l'aide d'un service WCF, mais une classe ne fonctionne pas. Le service WCF va générer et je peux appeler la fonction qui renvoie l'objet dans le client de test WCF, mais je ne peux pas utiliser le service une fois que j'ai mis à jour la référence de service dans le projet qui est le consommateur.Mon service WCF ne retourne pas une classe particulière
Voici une copie de la classe
//[Serializable]
[DataContract]
public class TillCompanySystem : INotifyPropertyChanged
{
// Internal private member variables
private String _sTillCompanySystemID = "";
private String _sValue = "";
// Events
//[field: NonSerialized]
public event PropertyChangedEventHandler PropertyChanged;
// Constructor
public TillCompanySystem()
{
}
// Public properties
#region Public Properties
// Public properties
[DataMember]
public String TillCompanySystemID
{
get { return _sTillCompanySystemID; }
set
{
_sTillCompanySystemID = value;
OnPropertyChanged(new PropertyChangedEventArgs("TillCompanySystemID"));
}
}
[DataMember]
public String Value
{
get { return _sValue; }
set
{
_sValue = value;
OnPropertyChanged(new PropertyChangedEventArgs("Value"));
}
}
// End region public properties
#endregion
// All objects need to support ToString
public override String ToString()
{
return TillCompanySystemID.ToString();
}
// Public Events
public void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (PropertyChanged != null)
PropertyChanged(this, e);
}
}
Je ne sais vraiment pas pourquoi cela ne fonctionne pas. La seule différence que je peux penser entre ceci et les autres classes est qu'auparavant c'était sérialisable, mais je ne peux pas voir comment cela ferait n'importe quelle différence maintenant. Cependant, si je vois la classe à partir des métadonnées, la classe semble toujours être sérialisable. J'ai essayé de tout reconstruire et cela ne l'a pas réparé.
Quelqu'un a-t-il des idées?
Merci à l'avance
Ed
De quelle manière ne pouvez-vous pas utiliser le service? Avez-vous une erreur? – Paddy
J'ai essayé une application de test rapide et l'entité est renvoyée comme prévu. Bien sûr, seules les propriétés publiques (DataMembers) sont sérialisées. c'est-à-dire que les implémentations de serveur de ToString() et de OnPropertyChanged ne sont pas tirées vers la classe de proxy client. L'interface 'INotifyPropertyChanged' est reconnue par Visual Studio lors de la génération du proxy et est réimplémentée dans le proxy. – StuartLC
Lorsque je mets à jour la référence du service, aucun service n'est disponible. Je fais un clic droit sur la référence du service et l'affiche dans le navigateur d'objets, le service n'est pas disponible. Je l'ai vu précédemment quand j'ai ajouté de nouvelles fonctions au service et n'ai pas fait les classes de contrats de données. –