Подтвердить что ты не робот

Разница между данными и сервисом

Насколько я знаю -

ServiceContract может использоваться для интерфейса/класса, тогда как DataContract может использоваться только для классов, Struct и Enums

Кроме этого - какие другие отличия b/w эти 2? Когда DataContract и ServiceContract должны использоваться в приложении?

Любой образец или ссылка также будут делать. Спасибо заранее.

4b9b3361

Ответ 1

ServiceContract определяет контракт на обслуживание - его форму и форму. Он определяет имя службы, ее пространство имен XML и т.д., И обычно это интерфейс (но может также применяться к классу), который содержит методы, украшенные атрибутом [OperationContract] - методы службы.

[ServiceContract]
public interface IMyService
{
    [OperationContract]
    Response GetData(int someKey);
}

DataContract - совершенно другой зверь - он украшает класс, чтобы определить его как класс, который используется как параметр или возвращаемое значение из одного из методов службы. Он маркирует этот класс как "вещь" для сериализации на провод для его передачи. Это инструкция для среды выполнения WCF (сериализатор данных), которую этот класс предназначен для использования в службе WCF.

[DataContract]
public class Response
{ 
    [DataMember] 
    int Key { get; set; }

    [DataMember] 
    string ProductName { get; set; }

    [DataMember] 
    DateTime DateOfPurchase { get; set; }
}

Таким образом, контракт на обслуживание и контракт с данными - это две совершенно отдельные части, которые играют вместе, чтобы сделать работу службы WCF - это не похоже на то, что можно заменить другое или что-то в этом роде.