У меня есть приложение призмы, использующее службы RIA, и моя служба аутентификации находится в отдельной библиотеке классов RIA.
Программа отлично работает во время выполнения.Аутентификация и все.
Я получаю неприятную ошибку во время разработки, которая приводит к сбою как Visual Studio, так и смешивания.Смесь рухнет сразу же, когда я открою решение.Visual Studio будет зависать, когда я закрываю конкретный вид (страницу)По крайней мере, смесь дал мне журнал аварий после того, как.Ошибка связана с тем, что я установил экземпляр моей модели представления в качестве контекста данных представления в xaml, а не установил / внедрил его во время выполнения.
Поэтому при установке контекста представления модели во время выполнения конструктор модели представления называетсякогда представление загружается в конструктор.И когда представление закрыто, вызывается деструктор.Вот где я получаю исключение, которое дает сбой vs / blend.Итак, вот исключение:
System.InvalidOperationException: текущий экземпляр WebContext недоступен.Вы должны создать экземпляр WebContext и добавить его в Application.ApplicationLifetimeObjects в конструкторе приложения по умолчанию.в System.ServiceModel.DomainServices.Client.ApplicationServices.WebContextBase.get_Current () в MyClassLibrary.WebContext.get_Current () в MyShellProject.ShellViewModel.Finalize ()
*.мой конструктор приложений.И нет проблем во время выполнения.Только после того, как я добавил экземпляр моей модели представления как текстовый текст, я получаю сбой во время выполнения.
Так что в моем App.xaml у меня есть:
<Application.ApplicationLifetimeObjects>
<MyClassLibrary:WebContext>
<MyClassLibrary:WebContext.Authentication>
<ApplicationServices:FormsAuthentication>
<ApplicationServices:FormsAuthentication.DomainContext>
<MyClassLibrary_Web:MyAuthenticationContext />
</ApplicationServices:FormsAuthentication.DomainContext>
</ApplicationServices:FormsAuthentication>
</MyClassLibrary:WebContext.Authentication>
</MyClassLibrary:WebContext>
</Application.ApplicationLifetimeObjects>
Я также попробовал код, стоящий заэквивалент этого в конструкторе приложения.Оба имеют один и тот же результат.
В этом блоге есть немного больше деталей о том, как настроен мой проект: http://avcode.wordpress.com/2010/08/25/authenticaion-prism-wcf-ria-services/
Кто-нибудь знает, почему во время разработки Visual Studioне знает, что я создал экземпляр WebContext?