Есть ли способ избежать генерации кода для типов, на которые уже есть ссылки при использовании нескольких доменов?
Позволь мне объяснить.
У меня есть инфраструктура приложения для Silverlight. Этот пакет Infra включает в себя 3 службы домена (RIA) (аутентификация, ведение журнала, обнаружение служб) на стороне сервера - Infra.Web.dll и dll silverlight - ClientInfra.dll. который реализует аутентификацию пользователя при запуске приложения и некоторые другие базовые классы (например, BaseApp и BaseView), в то время как Infra.Web.dll определяется как ссылка на службы WCF RIA для ClientInfra.dll .
Сейчас я разрабатываю демонстрационное приложение Silverlight, чтобы протестировать свою инфраструктуру. Я создал
DemoApp.Web, который ссылается на Infra.Web.dll (для получения услуг инфраструктуры)
и 2 проекта silverlight:
DemoApp.Data, который определяет DemoApp.Web.dll как ссылку на службы WCF RIA, чтобы получить сгенерированный код и ссылки на ClientInfra.dll.
DemoApp - это фактическое приложение Silverlight, которое ссылается на ClientInfra.dll.
Проблема в том, что когда я пытаюсь использовать одну из служб RIA из приложения silverlight, у меня возникает ошибка, что классы доменных служб определены как в ClientInfra.dll, так и в DemoApp.Data. . Насколько я понимаю, проблема в том, что код из Infra.Web.dll был сгенерирован дважды: сначала для ClientInfra.dll, затем для DemoApp.Data < / сильный>.
Есть ли способ избежать генерации кода для типов, которые уже упоминаются, как в моем случае, когда ClientInfra.dll уже имеет сгенерированные инфра-сервисы, поэтому нет необходимости создавать его снова в DemoApp. Данные?
Постараюсь сделать свой вопрос проще. Как я могу избежать генерации типов служб ria (в silverlight) тех типов, которые уже были созданы для моей DLL, на которую имеется ссылка? Дублирование генерации типов вызывает ошибку CS0433, что одни и те же типы определены в двух разных dll.
Я обнаружил интересный факт. Если я ссылаюсь на ClientInfra.dll непосредственно из DemoApp (проект приложения silverlight), то типы данных, которые уже были созданы в ClientInfra.dll strong > не генерируются лишний раз. Но если я ссылаюсь на ClientInfra.dll из DemoApp.Data, я получаю генерацию кода дублированных типов с предупреждением компиляции о том, что одни и те же типы определены как в указанной DLL, так и в в сгенерированном коде.