Ich habe ein folgendes Problem. Ein Kunde aufgefordert, einen Web-Dienst, die Daten in folgendem Format zurück:Benutzerdefinierter Datenvertrag/Name des Datenmembers
<status>
<name1>Some name</name1>
...
</status>
Aber wenn ein Fehler auftritt sie eine Meldung erhalten mag:
<status>
<error>Error description</error>
</status>
Ich habe einen Web-Service mit WCF und um die Anforderungen zu erfüllen I definiert einen folgenden Servicevertrag:
[ServiceContract]
public interface IPatronStatus
{
[OperationContract]
[ServiceKnownType("GetKnownTypes", typeof(KnownTypesProvider))]
[WebGet(UriTemplate = "/service/status?user={unilogin}")]
StatusData GetPatronStatus(string unilogin);
}
und definiert auch eine folgende Basisklasse:
[DataContract(Name="status")]
public class StatusData
{
}
Und zwei schließt man Klassen:
public class PatronStatusData : StatusData
{
private string _name;
[DataMember(Name = "name1", Order = 0)]
public string Name
{
get { return _name; }
set { _name = value; }
}
...
}
Und:
public class UniLoginNotFoundError : StatusData
{
public UniLoginNotFoundError()
{ }
private string _description = "UniLoginNotFoundError";
[DataMember(Name = "error", Order = 0)]
public string Description
{
get
{
return _description;
}
}
}
Das Problem ist, dass, wenn ich die Daten aus dem Web-Service die Datenvertragsnamen ("status") ziehen und Die Namen der Datenelemente werden ignoriert, und die Namen der Typen und Eigenschaften werden verwendet.
Ist es möglich, die custome-Namen zu verwenden?
Bitte bearbeiten Sie die Frage, um genau zu zeigen, wie das XML jetzt aussieht. –