J'ai un problème suivant. Un client a demandé un service Web qui renvoie les données au format suivant:Nom du fournisseur de données/nom de l'utilisateur personnalisé
<status>
<name1>Some name</name1>
...
</status>
Mais quand une erreur se produit, ils veulent obtenir un message suivant:
<status>
<error>Error description</error>
</status>
J'ai créé un service Web en utilisant WCF et pour pour répondre aux exigences je définissais un contrat de service suivant:
[ServiceContract]
public interface IPatronStatus
{
[OperationContract]
[ServiceKnownType("GetKnownTypes", typeof(KnownTypesProvider))]
[WebGet(UriTemplate = "/service/status?user={unilogin}")]
StatusData GetPatronStatus(string unilogin);
}
Et aussi défini une classe de base suivante:
[DataContract(Name="status")]
public class StatusData
{
}
Et deux classes derrived:
public class PatronStatusData : StatusData
{
private string _name;
[DataMember(Name = "name1", Order = 0)]
public string Name
{
get { return _name; }
set { _name = value; }
}
...
}
Et:
public class UniLoginNotFoundError : StatusData
{
public UniLoginNotFoundError()
{ }
private string _description = "UniLoginNotFoundError";
[DataMember(Name = "error", Order = 0)]
public string Description
{
get
{
return _description;
}
}
}
Le problème est que quand je tire les données du service Web le nom de contrat de données ("statut") et les noms des membres de données sont ignorés et les noms des types et des propriétés sont utilisés.
Est-il possible d'utiliser les noms custome?
Veuillez éditer la question pour montrer exactement à quoi ressemble le XML maintenant. –