Конфигурация WCF без файла конфигурации

Ответ @ user3025064 - правильный ответ. Принятый ответ непреднамеренно переворачивает внутренние MAX и MIN звонки. Нам также не нужно сначала проверять, пересекаются они или нет, если мы используем представленную формулу MAX (0, x) в отличие от ABS (x). Если они не пересекаются, MAX (0, x) возвращает ноль, что делает область пересечения 0 (то есть непересекающейся).

Я предлагаю, чтобы @Yves Daoust исправил его ответ, потому что он принят, который появляется любому, кто ищет эту проблему. Еще раз, вот правильная формула для пересечения:

SI = Max(0, Min(XA2, XB2) - Max(XA1, XB1)) * Max(0, Min(YA2, YB2) - Max(YA1, YB1))

Остальное как обычно. Союз:

SU = SA + SB - SI

и соотношение:

SI/SU

90
задан Chris 26 September 2008 в 18:48
поделиться

6 ответов

Потребление веб-сервиса без файла конфигурации очень просто, поскольку я обнаружил. Просто необходимо создать объект привязки и объект адреса и передать их или конструктору клиентского прокси или к универсальному экземпляру ChannelFactory. Можно посмотреть на значение по умолчанию app.config для наблюдения что настройки использовать, затем создать статический вспомогательный метод где-нибудь, который инстанцирует прокси:

internal static MyServiceSoapClient CreateWebServiceInstance() {
    BasicHttpBinding binding = new BasicHttpBinding();
    // I think most (or all) of these are defaults--I just copied them from app.config:
    binding.SendTimeout = TimeSpan.FromMinutes( 1 );
    binding.OpenTimeout = TimeSpan.FromMinutes( 1 );
    binding.CloseTimeout = TimeSpan.FromMinutes( 1 );
    binding.ReceiveTimeout = TimeSpan.FromMinutes( 10 );
    binding.AllowCookies = false;
    binding.BypassProxyOnLocal = false;
    binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
    binding.MessageEncoding = WSMessageEncoding.Text;
    binding.TextEncoding = System.Text.Encoding.UTF8;
    binding.TransferMode = TransferMode.Buffered;
    binding.UseDefaultWebProxy = true;
    return new MyServiceSoapClient( binding, new EndpointAddress( "http://www.mysite.com/MyService.asmx" ) );
}
114
ответ дан devios1 5 November 2019 в 14:20
поделиться

Это не снисходительно относится к серверу сторона ..

Для стороны клиента, можно использовать ChannelFactory

5
ответ дан Gulzar Nazim 5 November 2019 в 14:20
поделиться

Вся конфигурация WCF может быть реализована программно. Таким образом, возможно создать и серверы и клиенты без файла конфигурации.

я рекомендую книге "Programming WCF Services" Juval Lowy, который содержит много примеров программируемой конфигурации.

3
ответ дан Paul Lalonde 5 November 2019 в 14:20
поделиться

Это очень легко сделать как на стороне клиента, так и на стороне сервера. Книга Ювала Лоуи имеет прекрасные примеры.

Что касается вашего комментария о файлах конфигурации, я бы сказал, что файлы конфигурации являются второстепенными для человека, делающего это в коде. Конфигурационные файлы хороши, когда вы контролируете каждого клиента, который будет подключаться к вашему серверу, и убедитесь, что они обновлены, и что пользователи не могут их найти и что-либо изменить. Я нахожу модель файла конфигурации WCF ограничивающей, слегка сложной для разработки и кошмаром обслуживания. В общем, я думаю, что MS приняла очень плохое решение сделать файлы конфигурации стандартным способом выполнения действий.

РЕДАКТИРОВАТЬ: Одна из вещей, которую вы не можете сделать с файлом конфигурации, - это создавать службы с не конструкторы. Это приводит к статическим / глобальным переменным и синглетонам и другим бессмысленным типам в WCF.

С помощью файла конфигурации нужно создавать сервисы с конструкторами не по умолчанию. Это приводит к статическим / глобальным переменным и синглетонам и другим бессмысленным типам в WCF.

С помощью файла конфигурации нужно создавать сервисы с конструкторами не по умолчанию. Это приводит к статическим / глобальным переменным и синглетонам и другим бессмысленным типам в WCF.

2
ответ дан 24 November 2019 в 07:04
поделиться

Я нашел сообщение в блоге по ссылке ниже около эта тема очень интересная.

Одна идея, которая мне нравится, заключается в том, что я могу просто передать секцию привязки или поведения или адреса XML из конфигурации в соответствующий объект WCF и позволить ему обрабатывать присвоение свойств - в настоящее время вы не можете этого сделать.

Как и у других пользователей в Интернете, у меня возникают проблемы, связанные с необходимостью моей реализации WCF использовать файл конфигурации, отличный от файла моего хост-приложения (которое является службой Windows .NET 2.0).

http://salvoz.com / blog / 2007/12/09 / programmatics-setting-wcf-configuration /

2
ответ дан 24 November 2019 в 07:04
поделиться

Если вы хотите исключить использование раздела System.ServiceModel в web.config для хостинга IIS, я опубликовал пример того, как это сделать, здесь ( http://bejabbers2.blogspot.com/2010/02/wcf-zero-config-in-net-35-part-ii.html ). Я показываю, как настроить ServiceHost для создания как метаданных, так и конечных точек привязки wshttp. Я делаю это универсальным способом, не требующим дополнительного программирования. Для тех, кто не сразу обновляется до .NET 4.0, это может быть очень удобно.

19
ответ дан 24 November 2019 в 07:04
поделиться
Другие вопросы по тегам:

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