Umowa serwisowa określa umowę usługi - jej kształt i formę. Definiuje nazwę usługi, jej przestrzeń nazw XML itp. I zazwyczaj jest to interfejs (ale może być również zastosowany do klasy), który zawiera metody ozdobione atrybutem [OperationContract]
- metody obsługi.
[ServiceContract]
public interface IMyService
{
[OperationContract]
Response GetData(int someKey);
}
DataContract jest całkowicie różny zwierzę - to ozdabia klasę zdefiniować jako klasy, który jest używany jako parametr lub zawracania wartości z jedną z metod usług. To etykietowanie tej klasy jako "rzeczy", aby serializować na drucie, aby ją przesłać. Jest to instrukcja dla środowiska wykonawczego WCF (serializatora kontraktu danych), którą ta klasa ma być używana w usłudze WCF.
[DataContract]
public class Response
{
[DataMember]
int Key { get; set; }
[DataMember]
string ProductName { get; set; }
[DataMember]
DateTime DateOfPurchase { get; set; }
}
więc zamówienie na usługi, a umowa dane są dwa całkowicie odrębne części, które grają razem, aby prace serwisowe WCF - to nie jest tak, jak można by zastąpić inną lub coś.
Świetne wyjaśnienie. – Wallstrider
Dobrze! Żałuję, że nie jestem programistą C#! C# jest niesamowite! a twoje wyjaśnienie jest niesamowite! – Farah
Świetne wyjaśnienie! Czy istnieje jakiś szczególny przypadek, w którym można udekorować klasę za pomocą "[ServiceContract]" lub czy zalecane jest używanie jej tylko do interfejsów? –