Руководство. Определение контракта службы Windows Communication Foundation

В этом руководстве описаны первые из пяти задач, необходимых для создания базового приложения Windows Communication Foundation (WCF). Общие сведения о руководствах см. в руководстве по началу работы с приложениями Windows Communication Foundation.

При создании службы WCF ваша первая задача — определить контракт службы. Контракт службы определяет, какие операции поддерживает служба. Операцию можно представлять себе как метод веб-службы. Вы создаете контракты служб, определяя интерфейс C# или Visual Basic. Интерфейс имеет следующие характеристики:

  • Каждый метод в интерфейсе соответствует определенной операции службы.
  • Для каждого интерфейса необходимо применить ServiceContractAttribute атрибут.
  • Для каждой OperationContractAttribute операции или метода необходимо применить атрибут.

В этом руководстве описано следующее:

  • Создайте проект библиотеки служб WCF.
  • Определите интерфейс контракта службы.

Создание проекта библиотеки служб WCF и определение интерфейса контракта службы

  1. Откройте Visual Studio от имени администратора. Для этого выберите программу Visual Studio в меню "Пуск", а затем выберите "Дополнительно>запустить от имени администратора" в контекстном меню.

  2. Создайте проект библиотеки служб WCF.

    1. В меню Файл выберите пункт Создать>Проект.

    2. В диалоговом окне "Новый проект" в левой части разверните узел Visual C# или Visual Basic, а затем выберите категорию WCF. Visual Studio отображает список шаблонов проектов в центре окна. Выберите библиотеку служб WCF.

      Примечание.

      Если вы не видите категорию шаблона проекта WCF , может потребоваться установить компонент Windows Communication Foundation Visual Studio. В диалоговом окне "Создать проект" выберите ссылку "Открыть установщик Visual Studio" слева. Перейдите на вкладку "Отдельные компоненты" , а затем найдите и выберите Windows Communication Foundation в категории действий по разработке. Выберите "Изменить", чтобы начать установку компонента.

    3. В нижнем разделе окна введите GettingStartedLib для имени решения и Получения Запуска.

    4. Нажмите ОК.

      Visual Studio создает проект с тремя файлами: IService1.cs (или IService1.vb для проекта Visual Basic), Service1.cs (или Service1.vb для проекта Visual Basic) и App.config. Visual Studio определяет эти файлы следующим образом:

      • Файл IService1 содержит определение контракта службы по умолчанию.
      • Файл Service1 содержит реализацию контракта службы по умолчанию.
      • Файл app.config содержит сведения о конфигурации, необходимые для загрузки службы по умолчанию с помощью средства узла службы WCF Visual Studio. Дополнительные сведения о средстве узла службы WCF см. в разделе "Узел службы WCF" (WcfSvcHost.exe).

      Примечание.

      Если вы установили Visual Studio с параметрами среды разработчика Visual Basic, решение может быть скрыто. Если это так, выберите "Параметры " в меню "Сервис" , а затем выберите "Проекты и решения>" в окне "Параметры ". Выберите "Всегда показывать решение". Кроме того, убедитесь, что при выборе выбрано сохранение новых проектов.

  3. В Обозреватель решений откройте файл IService1.cs или IService1.vb и замените его код следующим кодом:

    using System;
    using System.ServiceModel;
    
    namespace GettingStartedLib
    {
            [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
            public interface ICalculator
            {
                [OperationContract]
                double Add(double n1, double n2);
                [OperationContract]
                double Subtract(double n1, double n2);
                [OperationContract]
                double Multiply(double n1, double n2);
                [OperationContract]
                double Divide(double n1, double n2);
            }
    }
    
    Imports System.ServiceModel
    
    Namespace GettingStartedLib
    
        <ServiceContract(Namespace:="http://Microsoft.ServiceModel.Samples")> _
        Public Interface ICalculator
    
            <OperationContract()> _
            Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
            <OperationContract()> _
            Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
            <OperationContract()> _
            Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
            <OperationContract()> _
            Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
        End Interface
    End Namespace
    

    В этом контракте определен калькулятор в сети. Обратите внимание, что ICalculator интерфейс помечен атрибутом ServiceContractAttribute (упрощен как ServiceContract). Этот атрибут определяет пространство имен для диамбигуации имени контракта. Код помечает каждую операцию калькулятора атрибутом OperationContractAttribute (упрощено как OperationContract).

Следующие шаги

Из этого руководства вы узнали, как:

  • Создайте проект библиотеки служб WCF.
  • Определите интерфейс контракта службы.

Перейдите к следующему руководству, чтобы узнать, как реализовать контракт службы WCF.