Как использовать одну и ту же библиотеку для Silverlight и CLR - PullRequest
3 голосов
/ 07 мая 2009

У меня есть библиотека, которая имеет собственную доменную логику. Некоторые вещи сильно ударяют и зависят от времени работы ядра вне времени исполнения Silverlight.

Можно ли скомпилировать один и тот же код для 2 разных сред выполнения и ссылаться на разные варианты от разных потребителей? Как

Ответы [ 4 ]

3 голосов
/ 07 мая 2009

Есть несколько способов добиться того, что вы хотите.

  1. Нельзя ссылаться на полные сборки .net Framework в Silverlight, но вы можете делать это наоборот, поэтому вы можете кодировать в SL и затем ссылаться на проекты SL в проектах, скомпилированных в полном .Net.

  2. Вы можете добавлять файлы из других проектов в качестве ссылок для совместного использования исходного кода вместо ссылок на сборки

  3. Более того, вы можете использовать Prism v2 и надстройку Project Linker, которая поставляется вместе с ним, чтобы позволить Visual Studio управлять файлами, связывающими между проектами. Вы можете узнать больше о мультиплатформенном таргетинге здесь

2 голосов
/ 07 мая 2009

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

Вот чудеса наследования и полиморфизма;)

[С другой стороны: если вы обнаружите, что копируете код (либо фрагменты, либо целые файлы CS), вы делаете что-то очень неправильное]

1 голос
/ 07 мая 2009

Рассматривали ли вы использование Workflow Foundation для своей задачи?

P.S. Вопрос очень широкий. Не могли бы вы предоставить образец, чтобы у нас было с чем поработать?

0 голосов
/ 07 мая 2009

Добавьте два проекта библиотеки классов (SLLib, CLRLib) в ваше решение. Затем добавьте все ваши файлы .cs в оба решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...