Я изучал книгу «Изучение WCF», пытаясь научиться создавать и использовать веб-сервисы WCF. Первая часть книги знакомит читателя с созданием и использованием простого веб-сервиса «Hello World».
Проблема, с которой я столкнулся, заключается в том, что клиентское приложение, похоже, не знает структуру интерфейса WCF при его вызове. Как это может быть необходимо, если веб-сервис может вызываться с любого количества языков программирования?
Я перечислил соответствующий пример кода ниже ...
Вот код для интерфейса
[ServiceContract(Namespace="http: //www.thatindigogirl.com/samples/2006/06")]
public interface IHelloIndigoService
{
[OperationContract]
string HelloIndigo();
}
Вот код Сервиса, на котором размещается веб-сервис
static void Main(string[] args)
{
using (ServiceHost host = new ServiceHost(typeof(HelloIndigo.HelloIndigoService) ,
new Uri("http: //localhost: 8000/HelloIndigo")))
{
host. AddServiceEndpoint(typeof(HelloIndigo. IHelloIndigoService) ,
new BasicHttpBinding(), "HelloIndigoService");
host. Open( );
Console. WriteLine("Press <ENTER> to terminate the service host") ;
Console. ReadLine();
}
}
Вот код клиентского приложения, которое использует службу WCF
Здесь я запутался. Поскольку это клиентское приложение может быть любым языком, способным вызывать веб-сервис, почему необходимо знать определение интерфейса?
using System. ServiceModel;
[ServiceContract(Namespace = "http: //www.thatindigogirl.com/samples/2006/06")]
public interface IHelloIndigoService
{
[OperationContract]
string HelloIndigo( );
}
static void Main(string[ ] args)
{
EndpointAddress ep = new
EndpointAddress("http: //localhost: 8000/HelloIndigo/HelloIndigoService") ;
IHelloIndigoService proxy = ChannelFactory<IHelloIndigoService>.
CreateChannel(new BasicHttpBinding(), ep);
string s = proxy. HelloIndigo();
Console. WriteLine(s) ;
Console. WriteLine("Press <ENTER> to terminate Client.") ;
Console. ReadLine();
}
Я упустил важный момент здесь? Возможно, мое понимание того, что необходимо для использования сети, отсутствует. Моя цель - использовать WCF для создания службы .NET, которую можно вызывать из любого языка программирования или любой другой среды.
Может ли кто-нибудь предложить хороший учебник по созданию "кроссплатформенных" веб-сервисов из .NET? Спасибо!