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