Вопрос

У меня есть проект Silverlight, в котором функциональность разделена между несколькими библиотеками Silverlight из-за размера и сложности приложения.У меня возникли проблемы с определением того, как лучше всего отделить доменную службу RIA, созданную из проекта веб-сайта.Мне нужно иметь доступ к данным из других библиотек, поскольку они будут динамически загружаться в основное приложение Silverlight по мере необходимости.

Это было полезно?

Решение

В итоге я взял код, сгенерированный Visual Studio в каталоге Generated_Code основного приложения Silverlight, и создал несколько библиотек Silverlight для разделения Ria DomainContext, службы аутентификации, сущностей и других написанных нами доменных служб.Затем я извлек интерфейсы для DomainContext и т. д. и поместил их в отдельную библиотеку.Используя Microsoft Unity Framework для Silverlight, я смог отделить все свои модули от основного проекта.Все мои модули теперь используют эти интерфейсы.В основном приложении есть один IoC-контейнер, где я регистрирую все классы, реализующие интерфейсы, и они внедряются в страницы по мере их создания.В конце концов, это не так уж и соблюдается.Единственное, что следует запомнить, — это оставить атрибут EnableClientAccess в классах доменных служб на сервере, но удалить ссылку на серверный проект ASP.Net из основного приложения Silverlight.Я читал, что они планируют сделать это проще в финальной версии служб Ria/Silverlight 3, поскольку другие люди жаловались на жесткую связь, создаваемую текущей настройкой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top