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