Конфигурация клиента службы WCF из набора приложений. json (. NET Core) - PullRequest
2 голосов
/ 06 марта 2020

Есть ли способ настроить ссылку на службу WCF из файла конфигурации? Я хотел бы настроить ссылку на службу WCF с такими параметрами, как SecurityMode, Address, ReaderQuotas et c. Я также хотел бы иметь возможность выбирать между WsHttpBinding, BasicHttpBinding, BasicHttpsBinging и т. Д. c (как обычная конфигурация, предоставляемая app.config в. NET Framework).

Есть ли способ добиться этого? NET Core / .NET Стандарт?

Спасибо, Бартек

1 Ответ

0 голосов
/ 09 марта 2020

Некоторые привязки, такие как Wshttpbinding, Netnamedbinding, не совместимы с Do tNet Core framework. Следовательно, мы не могли его настроить. Однако это не означает, что мы не можем настроить Basichttpbinding, Nettcpbinding.
. В настоящее время службу WCF нельзя создать с помощью Do tNet Core без использования сторонней библиотеки. Более того, клиент WCF на основе Do tNet Core - просто совместимый обходной путь.
https://github.com/dotnet/wcf
Как и проект Do tNet Framework, корпорация Майкрософт предоставляет инструмент справочного провайдера веб-служб Microsoft WCF для создания клиентского прокси.
https://docs.microsoft.com/en-us/dotnet/core/additional-tools/wcf-web-service-reference-guide
После добавления подключенной службы он должен сгенерировать новое пространство имен, содержащее класс клиентского прокси. Большая часть конфигурации клиента находится в Reference.cs.
Также мы можем вручную запрограммировать код для вызова службы WCF.

class Program
    {
        static void Main(string[] args)
        {
            //using the automatically generated client proxy lcoated in the Reference.cs file to call the service.
            //ServiceReference1.ServiceClient client = new ServiceReference1.ServiceClient();
            //var result = client.TestAsync();
            //Console.WriteLine(result.Result);

            //using the Channel Factory to call the service.
            Uri uri = new Uri("http://10.157.13.69:21012");
            BasicHttpBinding binding = new BasicHttpBinding();
            ChannelFactory<IService> factory = new ChannelFactory<IService>(binding, new EndpointAddress(uri));
            IService service = factory.CreateChannel();
            var result = service.Test();
            Console.WriteLine(result);
        }
    }
    [ServiceContract]
    public interface IService
    {
        [OperationContract]
        string Test();

    }

https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/how-to-use-the-channelfactory
Не стесняйтесь, дайте мне знать, если есть что-то, с чем я могу помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...