Использование файла DLL, который использует ссылку на службу - PullRequest
0 голосов
/ 25 февраля 2019

Я создал проект библиотеки классов в Visual Studio (C #).Я добавил ссылку на службу в этом проекте для службы WCF и создал класс и функции для использования этой ссылки на службу.

Затем я создал проект консольного приложения в Visual Studio (C #), чтобы протестировать вышеуказанный проект библиотеки классов, но он выдавал ошибку.При поиске решения я обнаружил, что мне нужно скопировать <system.servicemodel> из app.config моего проекта Class Library и добавить его в мой тестовый проект.Я попробовал это решение, и оно работало нормально.

Однако мне нужно предоставить этот файл DLL (только DLL) третьей стороне, где он будет его использовать.Как я могу настроить свой проект библиотеки классов, чтобы мне не нужно было вручную копировать <system.servicemodel> из app.config библиотеки классов ???

т.е. я буду делиться с ними только DLL, и они должны иметь возможностьзапустить его, не добавляя ничего лишнего в app.config на их стороне.

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

В этом случае вы должны использовать приведенный ниже пример кода: В классе «BasicHttpBinding» вы можете настроить все свои параметры, которые вы настраивали в web.config ранее.

            var binding = new BasicHttpBinding
            {
                Security = new BasicHttpSecurity
                {
                    Mode = BasicHttpSecurityMode.Transport
                },
                AllowCookies = true,
                MaxReceivedMessageSize = 20000000,
                MaxBufferSize = 20000000,
                MaxBufferPoolSize = 20000000,
                ReaderQuotas = new XmlDictionaryReaderQuotas()
                {
                    MaxDepth = 32,
                    MaxArrayLength = 200000000,
                    MaxStringContentLength = 200000000
                }
            };
            var endpoint = new EndpointAddress(account.Url);
            var _client = new online2ServicesSoapClient(binding, endpoint);
0 голосов
/ 25 февраля 2019

WCF по умолчанию берет данные о конечной точке из app.config, но вы также можете предоставить их в коде :

BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("Your service address here");
var client = new YourServiceClientClass(binding, address);
...