У меня есть библиотека C # с множеством внутренних функций, предоставляющая только несколько открытых классов и интерфейсов. Я хотел бы поделиться этим кодом между несколькими проектами, и каждому проекту может потребоваться расширить внутренние классы подклассами.
Мне не нравится идея сделать все эти классы общедоступными для создания общей библиотеки. Я думаю, что это слишком подвергает их простой декомпиляции и нарушает дизайн.
Является ли единственной реальной возможностью создать копию исходного кода и синхронизировать эти файлы между проектами? Или есть какой-то способ, которым я могу поделиться кодом и по-прежнему получать по одной библиотеке для каждого проекта, выставляя только несколько предполагаемых открытых интерфейсов и классов?
Я использую Visual Studio 2010.
UPDATE
Спасибо за разъяснения по поводу декомпиляции и "частного" доступа. Я думаю, что я мог бы рассмотреть возможность применения обфускатора к нескольким входным библиотекам, все вместе, надеюсь, запутать даже их общедоступные соединения.
С точки зрения дизайна, кажется, что ответ заключается в окончательном использовании дружественных сборок.