WCF: Как я могу программно воссоздать эти значения App.config?

Test Driven Development упрощает автоматизацию. По моему мнению, тестеры должны быть разработчиками или бывшими разработчиками, которые хорошо умеют находить и предотвращать ошибки. Напишите тесты в том же проекте, в котором разрабатывается решение. Разработчики также могут вводить идентификаторы, хотя иногда они этого не хотят, и, если «тестеры» хороши, они могут даже отправлять запросы извлечения (в GitHub для пример) для улучшений кода, которые позволят им лучше тестировать. Думайте о тестировщиках как о части вашей команды разработчиков, где каждому разрешено вносить код. Это помогает с подотчетностью и улучшает автономию. Все готовы помочь друг другу, и если весь код находится в одном проекте, и весь код проверяется и утверждается перед объединением с мастером, каждый является потенциальным разработчиком, если все являются ИТ-специалистами. Старые дни ручного тестирования умирают. Отделение Dev от тестирования - кирпичная стена. Снесите это.

10
задан Cœur 16 November 2019 в 12:00
поделиться

2 ответа

Большинство значений в конфигурации приложения также являются свойствами в привязке и могут быть воссоздан программно. Лично я использую такой метод, как приведенный ниже, для создания привязки


 public static BasicHttpBinding CreateBasicHttpBinding()
        {
            BasicHttpBinding binding = new BasicHttpBinding();
            binding.AllowCookies = false;
            binding.ReceiveTimeout = new TimeSpan(0, 10, 0);
            binding.OpenTimeout = new TimeSpan(0, 1, 0);
            binding.SendTimeout = new TimeSpan(0, 1, 0);
            // add more based on config file ...
            //buffer size
            binding.MaxBufferSize = 65536;
            binding.MaxBufferPoolSize = 534288;
            binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;

            //quotas
            binding.ReaderQuotas.MaxDepth = 32;
            binding.ReaderQuotas.MaxStringContentLength = 8192;
            // add more based on config file ...

            return binding;
        }

, и я использую что-то подобное для создания моего адреса конечной точки


public static EndpointAddress CreateEndPoint()
        {
            return new EndpointAddress(Configuration.GetServiceUri());
        }

. ​​ServiceUri будет URL-адресом службы, таким как http: // www. myuri.com/Services/Services.svc/basic

Наконец, для создания клиента службы


 Binding httpBinding = CreateBasicHttpBinding();
 EndpointAddress address = CreateEndPoint();
 var serviceClient = new MyServiceClient(httpBinding, address);

16
ответ дан 3 December 2019 в 21:22
поделиться

Well, the client endpoint in the config specifies this URL:

 <endpoint address="http://www.myuri.com/Services/Services.svc/basic"

but in your code sample, you create:

 EndpointAddress endpointAddress = new EndpointAddress( "my.uri.com/service.svc" );

The addresses must match - if the one in the config works, you'll need to change your code to:

 EndpointAddress endpointAddress = new EndpointAddress( "http://www.myuri.com/Services/Services.svc/basic" );

Mind you - there are various little typos in your code sample (my.uri.com vs. www.myuri.com, /service.svc instead of /Services/Services.svc).

Does it work with the corrected endpoint address?

Marc

1
ответ дан 3 December 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: