Печаль с объектами передачи данных в Silverlight / WCF - PullRequest
0 голосов
/ 11 октября 2010

У меня есть приложение Silverlight, размещенное в проекте ASP веб-роли Azure. Проект ASP предоставляет службу WCF.

Я хотел бы иметь один набор определений классов для типов данных. Кто-то рекомендовал сделать третий проект (библиотеку классов) и добавить ссылку на него из SL и ASP. Я начал это делать, но проект Silverlight пожаловался, что вы можете добавлять ссылки только на проекты Silverlight.

Затем я создал библиотеку классов Silverlight и переместил в нее классы данных. Тем не менее, я хочу добавить некоторые ссылки .dll, например, на клиент хранилища Windows Azure. Затем библиотека классов Silverlight сообщает мне, что я могу добавлять ссылки только на Silverlight 4-friendly .dll, из которых Windows Azure не одна. Фантастическая.

Есть ли что-то, что я могу сделать, чтобы обойти это, или я застрял с менее изящным, избыточным решением?

Ответы [ 2 ]

1 голос
/ 11 октября 2010

Многоцелевой таргетинг - ваш лучший выбор. Есть статья, объясняющая это в Visual Studio от Microsoft по адресу: http://msdn.microsoft.com/en-us/library/ff921092(PandP.20).aspx

По сути, вы создаете библиотеки Silverlight и стандартные классы .NET, каждая из которых имеет свое имя, а затем включаете в них одни и те же файлы. Обычно файлы находятся только в одной из библиотек классов и затем мягко связаны во второй.

Ключ должен гарантировать, что код в ваших файлах совместим с обеими средами выполнения. Если для некоторых из ваших методов требуется отдельная реализация, в зависимости от времени выполнения, вам нужно разделить их с помощью прагм (т.е. #ifdef SILVERLIGHT ...).

Однако, если вы работаете только со структурами данных, проблем не должно быть, если Silverlight поддерживает используемые вами объекты.

0 голосов
/ 11 октября 2010

Посмотрите, используете ли связанные файлы согласно , этот ответ поможет вам.

...