Поскольку SL! = .NET, вам необходимо скомпилировать их в сборке Silverlight, используя компилятор Silverlight.Другими словами, вы не можете напрямую использовать их без небольшой хитрости.
Один из вариантов - создать проект Silverlight, а затем использовать связывание файлов для обмена файлами кода из проекта .NET (без их дублирования).).Обычный проект владеет файлами, содержащимися в нем, но «связанный» файл включен для компиляции, не будучи полностью владельцем проекта.Чтобы связать файлы, перейдите в диалоговое окно «Добавить файл> Добавить существующий файл», посмотрите внизу справа и увидите, что вы можете «связать» существующий файл.
Что вы можете сделать:
- Ваш обычный проект .NET с вашими файлами .cs
- Есть проект Silverlight, который связывает с вашими первыми файлами кода проектов
Когда вы компилируете проект Silverlight, он будет обрабатывать связанные файлы, как если бы они принадлежали проекту SL (но на вашем диске есть только одна копия внутри вашего .NET-проекта).
Проблема, с которой вы можете столкнуться, заключается в том, что не все типы .NET поддерживаются в Silverlight, поэтому если ваши бизнес-объекты содержат их, то ваш код .NET может не скомпилироваться в Silverlight.Вы можете использовать директивы прекомпилятора, чтобы иметь 2x сигнатуры методов для этих случаев: 1x .NET и 1x SL-совместимые.Вы бы установили директиву (то есть: Silverlight==True
), и компилятор выберет один или другой.
Например:
#IF SILVERLIGHT
public void SomeMethod(SilverlightType someParam)
#ELSE
public void SomeMethod(SomeDotNetType someParam)
#ENDIF
Вот ссылка спрохождение от Rocky Lhotka (автор / дизайнер фреймворка CSLA.net).Он упоминает об использовании связанных файлов и / или частичных классов для выборочной компиляции для каждой платформы.