Мне нужен VS2019 для создания клиента C # для подключения к серверу веб-служб Spyne / Python. После добавления файла WSDL и добавления команды для получения данных VS помечает строку следующим образом: Ошибка CS1503 Аргумент 1: невозможно преобразовать из 'int' в 'ConsoleApp1.WS1.say_hello' ConsoleApp1
Что бы я ни делал, я не могу избавиться от ошибки.
Снимок экрана: https://1drv.ms/u/s!AkvXYjF0tTGuqAJwoPaHd2kNqPX-
Файл веб-сервера Spyne / Python прост. Все, что он делает, это получает число и умножает его на 2. Я проверил, что сервер работает с использованием мыльного клиента Python / zeep.
# http://spyne.io/docs/2.10/manual/02_helloworld.html#manual-helloworld
import logging
logging.basicConfig(level=logging.DEBUG)
logging.getLogger('spyne.protocol.xml').setLevel(logging.DEBUG)
from spyne import Application, srpc, rpc, ServiceBase, Integer, Unicode
from spyne import Iterable
from spyne.protocol.soap import Soap11
from spyne.server.wsgi import WsgiApplication
class HelloWorldService(ServiceBase):
@srpc(int, _returns=Iterable(int) )
def say_hello(times):
yield times * 2
print()
application = Application([HelloWorldService],
tns='spyne.hello.soap',
in_protocol=Soap11(validator='lxml'),
out_protocol=Soap11()
)
if __name__ == '__main__':
from wsgiref.simple_server import make_server
wsgi_app = WsgiApplication(application)
server = make_server('0.0.0.0', 8000, wsgi_app)
logging.info("wsdl is at: http://localhost:8000/?wsdl")
server.serve_forever()
Клиент C # также прост:
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
WS1.ApplicationClient client = new WS1.ApplicationClient();
Console.WriteLine(client.say_hello( 5)); <<< Error
Console.ReadKey();
}
}
}