Мы используем WCF для определения наших контрактов данных и методов данных с использованием атрибутов.
По сути, мы создаем сборку для определения всех наших классов и другую сборку для предоставления соединительных битов WCF
Сборка класса OPur содержит класс обслуживания и несколько классов сообщений.
Мы определяем интерфейс для нашего сервиса и помечаем его соответствующей разметкой WCF. Это наш сервисный контракт.
[ServiceContract]
public interface IExampleWebService
{
[OperationContract]
CreateAccountResponse CreateAccount(int parameter, CreateAccountArguments another parameter);
[OperationContract]
DeleteAccountResponse DeleteAccount(int parameter);
}
Мы реализуем этот интерфейс в классе и создаем различные контракты данных (наши классы ответа и аргумента).
[DataContract]
public class CreateAccountResponse
{
[DataMember]
public bool CreatedOk { get; set; }
[DataMember]
public int AccountId { get; set; }
}
Эти классы предоставляются нашей форме с использованием веб-службы (мы создаем другую сборку в качестве веб-службы и имеем класс, который наследуется от нашего класса обслуживания (не показан в этом примере), поэтому мы разрешаем Visual Studio выполнять все рабочие настройки сервис WCF, поскольку мы получаем преимущества благодаря простому в использовании и обслуживании веб-сервису.