Почему я должен использовать конечные точки в WCF
Я только что создал свой первый пример в WCF. До сих пор я мог создать Сервис и использовать его на моей локальной машине. Когда я впервые прочитал о WCF, я увидел некоторые пояснения по поводу END POINTS и не мог понять, почему он действительно используется. Ниже приведен мой код, и кто-нибудь, пожалуйста, скажите мне, почему я должен использовать конечные точки и как добавить конечные точки в мой пример приложения.
namespace MvcApplicationrazor.Services
{
[ServiceContract]
public interface IMyService
{
[OperationContract]
string MyOperation1(string myValue);
[OperationContract]
string MyOperation2(DataContract1 dataContractValue);
[OperationContract]
string HelloWorld(string str);
}
[DataContract]
public class DataContract1
{
string firstName;
string lastName;
[DataMember]
public string FirstName
{
get { return firstName; }
set { firstName = value; }
}
[DataMember]
public string LastName
{
get { return lastName; }
set { lastName = value; }
}
}
}
namespace MvcApplicationrazor.Services
{
public class MyService : IMyService
{
public string MyOperation1(string myValue)
{
return "Hello: " + myValue;
}
public string MyOperation2(DataContract1 dataContractValue)
{
return "Hello: " + dataContractValue.FirstName;
}
public string HelloWorld(string str)
{
return "Helloworld from " + str;
}
}
}
Клиент:
FirstServiceReference.MyServiceClient cc = new FirstServiceReference.MyServiceClient();
string a = cc.MyOperation1("chamara");
1 ответ
Все взаимодействие со службой Windows Communication Foundation (WCF) происходит через конечные точки службы. Конечные точки предоставляют клиентам доступ к функциям, предлагаемым службой WCF.
Каждая конечная точка состоит из четырех свойств:
- Адрес, который указывает, где можно найти конечную точку.
- Привязка, которая указывает, как клиент может взаимодействовать с конечной точкой.
- Контракт, который определяет доступные операции.
- Набор поведений, которые определяют локальные детали реализации конечной точки.
Структура конечной точки
Каждая конечная точка состоит из следующего:
Адрес: адрес однозначно идентифицирует конечную точку и сообщает потенциальным потребителям услуги, где она находится. Он представлен в объектной модели WCF классом EndpointAddress. Класс EndpointAddress содержит:
Свойство Uri, представляющее адрес службы.
Свойство Identity, которое представляет идентификатор безопасности службы и коллекцию необязательных заголовков сообщений. Дополнительные заголовки сообщений используются для предоставления дополнительной и более подробной информации об адресации для идентификации или взаимодействия с конечной точкой.
Для получения дополнительной информации см. Указание адреса конечной точки.
Привязка: привязка указывает, как связаться с конечной точкой. Это включает:
Используемый транспортный протокол (например, TCP или HTTP).
Кодировка, используемая для сообщений (например, текстовая или двоичная).
- Необходимые требования безопасности (например, безопасность сообщений SSL или SOAP).
Для получения дополнительной информации см. Обзор привязок Windows Communication Foundation. Привязка представлена в объектной модели WCF абстрактным базовым классом Binding. В большинстве случаев пользователи могут использовать одну из системных привязок. Для получения дополнительной информации см. Системные привязки.
Контракты. В контракте указывается, какие функции конечная точка предоставляет клиенту. Контракт определяет:
Какие операции могут быть вызваны клиентом.
Форма сообщения.
- Тип входных параметров или данных, необходимых для вызова операции.
- Какой тип обработки или ответное сообщение может ожидать клиент.
Поведения. Вы можете использовать поведение конечной точки для настройки локального поведения конечной точки службы. Конечные точки поведения достигают этого, участвуя в процессе построения среды выполнения WCF. Примером поведения конечной точки является свойство ListenUri, которое позволяет указать другой адрес прослушивания, чем адрес SOAP или языка описания веб-служб (WSDL). Для получения дополнительной информации см. ClientViaBehavior.