Мужской.
У меня есть следующее определение в проекте Silverlight, MainPage.xaml:
<UserControl
xmlns:model="clr-namespace:Engine.Silverlight.Web.Views;assembly=Engine.Login.Model"
d:DataContext="{d:DesignInstance Type=model:DesignTimeModel, IsDesignTimeCreatable=True}">...
И класс в проекте Engine.Login.Model, который используется для привязки данных во время разработки (все отлично работает для предварительно инициализированных свойств, но):
public class DesignTimeModel : INotifyPropertyChanged
{
public DesignTimeModel()
{
var d = Deployment.Current.Dispatcher;
d.BeginInvoke(
() =>
{
CacheClient c = new CacheClient();
c.GetResourcesCompleted +=(s,e)=>
{
d.BeginInvoke(
() => this.Resources = e.Result);
};
c.GetResourcesAsync();
}
);
К сожалению, я получил System.ObjectDisposedException после завершения запроса WCF (я пытался отладить, используя другой экземпляр VS, подключившись к 1-му процессу экземпляра VS, но это не помогло - та же ошибка, без дополнительной информации):
System.ObjectDisposedException
Cannot access a disposed object.
Object name: 'Dispatcher'.
at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
Я предполагаю, что поведение Dispatcher отличается в режиме разработки.
Не могли бы вы помочь мне решить проблему получения данных времени разработки с использованием WCF в конструкторе XAML VS2010?