Я думаю, что лучшим вариантом было бы разделить ваш сервисный проект на:
- Основной проект C # (особенно если он содержит код, сгенерированный дизайнером)
- Библиотека реализации F #, которая построена с использованием F # и экспортирует важные алгоритмы в модуль или как классы (с дружественным интерфейсом C #).
Таким образом, вы можете использовать конструкторы C # (которые обычно недоступны для F #), но реализуют все сложные функциональные возможности в F #. Этот подход на самом деле очень похож на тот, который я недавно рекомендовал в своем блоге, когда разрабатывал приложения ASP.NET MVC на F # . Основное приложение написано на C #, но все интересные функции перенесены в библиотеку F #, а затем использованы из C #.
Использование инструмента ILMerge
для объединения двух сборок (как упомянуто в другом ссылочном ответе) может работать, но это не даст вам больших преимуществ (части C # и F # не смогут ссылаться друг на друга) так что это по сути то же самое, что и проект C # + библиотека F #.