Когда вы добавляете или обновляете ссылку на службу в проекте Visual Studio (ранее называвшемся «веб-ссылка»), VS.NET автоматически генерирует весь код привязки XML в конфигурации вашего приложения.
Это выглядит примерно так:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IUserService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="6553600" maxBufferPoolSize="524288" maxReceivedMessageSize="6553600"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://domain.com/services/user.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IUserService"
contract="UserService.IUserService" name="BasicHttpBinding_IUserService" />
</client>
</system.serviceModel>
Я ненавижу, как грязно это выглядит, и поэтому я обычно прохожу и вручную "исправляю" это, чтобы удалить все разрывы строк.
Итак, я выгляжу так:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IUserService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="6553600" maxBufferPoolSize="524288" maxReceivedMessageSize="6553600" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://domain.com/services/user.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IUserService" contract="UserService.IUserService" name="BasicHttpBinding_IUserService" />
</client>
</system.serviceModel>
Это не просто вопрос желания выглядеть чистым. Некоторые из моих клиентских проектов имеют более 20 ссылок, поэтому это помогает избежать конфигурации с 10 футами вертикальной прокрутки.
Я искал варианты, которые могли бы остановить это, но так и не нашел. Этим утром мне пришло в голову, что, возможно, я должен спросить об этом ТАК. Другие вопросы , такие как этот , касались аналогичных вопросов, но пока не нашли решения.