Простой ответ высокого уровня заключается в том, что вы помещаете свой общий код в сборку, на которую ссылаются сборки CLR и Silverlight. Все, что является специфическим для любой платформы, должно быть абстрагировано от общего кода и реализовано в проектах CLR и Silverlight.
Вот чудеса наследования и полиморфизма;)
[С другой стороны: если вы обнаружите, что копируете код (либо фрагменты, либо целые файлы CS), вы делаете что-то очень неправильное]