- Откройте Visual Studio 2012 от лица администратора, щелкнув программу правой кнопкой мыши в меню Пуск и выбрав команду Запуск от имени администратора.
- Создайте проект библиотеки службы WCF, последовательно выбрав в меню Файл пункты Создать и Проект. В диалоговом окне Создание проекта с левой стороны разверните Visual C# для проекта на языке C# или Другие языки и Visual Basic для проекта на языке Visual Basic. В выбранном языке выберите WCF, после чего в центре диалогового окна отобразится список шаблонов проекта. Выберите Библиотека службы WCF, затем введите данные GettingStartedLib в текстовом поле Имя и GettingStarted в текстовом поле Имя решения в нижней части диалогового окна.
- Visual Studio создаст проект, содержащий 3 файла: IService1.cs (или IService1.vb), Service1.cs (или Service1.vb) и App.config. В файле IService1 содержится контракт службы по умолчанию. В файле Service1 содержится контракт службы, реализованный методми по умолчанию. В файле App.config содержатся настройки, необходимые для загрузки службы по умолчанию средством WCF Service Host в Visual Studio.
- Откройте файл IService1.cs или IService1.vb и удалите код в пределах объявления пространства имен, оставив при этом само объявление пространства имен. В пределах объявления пространства имен определите новый интерфейс с именем ICalculator, как показано в приведенном ниже примере кода.
// IService.cs
|
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
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);
}
}
В этом контракте определен онлайн-калькулятор. Следует обратить внимание на то, что интерфейс ICalculator помечен атрибутом ServiceContractAttribute. Этот атрибут определяет пространство имен, которое используется для устранения неоднозначности имени контракта. Каждая операция калькулятора помечена атрибутом OperationContractAttribute.
Примечание |
При использовании атрибутов для описания интерфейса, члена или класса в имени атрибута можно опускать часть «Attribute». Таким образом, ServiceContractAttribute изменится на [ServiceContract] в C# или на <ServiceContract> в Visual Basic. |