Потребление веб-сервиса без файла конфигурации очень просто, поскольку я обнаружил. Просто необходимо создать объект привязки и объект адреса и передать их или конструктору клиентского прокси или к универсальному экземпляру 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" ) );
}
Связывание элементов обрабатывается несколько иначе, чем стандартное связывание DependencyProperty
в WPF (в частности, ItemsControl
).
Я думаю, вам нужно что-то вроде следующего:
var itemsView = CollectionViewSource.GetDefaultView(myListBox.ItemsSource);
itemsView.Refresh()
На самом деле вы хотите обновить объект ICollectionView
. Фактически это объект, который управляет привязкой коллекции за вас. См. страницу MSDN для получения дополнительной информации.