Ответ 1
Вдохновленный ответом Doobi, я просмотрел дополнительную информацию (примеры) по этому вопросу и придумал следующие выводы.
Шаги по созданию простого клиента WCF XML-RPC:
- Загрузите XML-RPC для WCF с этой страницы: http://vasters.com/clemensv/PermaLink,guid,679ca50b-c907-4831-81c4-369ef7b85839.aspx (ссылка для загрузки находится в верхней части страницы)
- Создайте пустой проект, который нацелен на .NET 4.0 Полный framework (иначе System.ServiceModel.Web не будет доступен позже)
- Добавить проект Microsoft.Samples.XmlRpc из архива в ваш проект
- Добавить ссылку на проект Microsoft.Samples.XmlRpc
- Добавить ссылки на System.ServiceModel и System.ServiceModel.Web
Пример кода
using System;
using System.ServiceModel;
using Microsoft.Samples.XmlRpc;
namespace ConsoleApplication1
{
// describe your service interface here
[ServiceContract]
public interface IServiceContract
{
[OperationContract(Action="Hello")]
string Hello(string name);
}
class Program
{
static void Main(string[] args)
{
ChannelFactory<IServiceContract> cf = new ChannelFactory<IServiceContract>(
new WebHttpBinding(), "http://www.example.com/xmlrpc");
cf.Endpoint.Behaviors.Add(new XmlRpcEndpointBehavior());
IServiceContract client = cf.CreateChannel();
// you can now call methods from your remote service
string answer = client.Hello("World");
}
}
}
Примеры запросов/ответов
Запрос XML
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>Hello</methodName>
<params>
<param>
<value>
<string>World</string>
</value>
</param>
</params>
</methodCall>
Ответ XML
<?xml version="1.0" encoding="utf-8"?>
<methodResponse>
<params>
<param>
<value>
<string>Hello, World!</string>
</value>
</param>
</params>
</methodResponse>