在项目之间共享C#中的代码而不公开类

Mig*_*ada 3 .net c# code-sharing

我有一个C#库,它有很多内部功能,只暴露一些公共类和接口.我想在几个项目之间共享此代码,并且每个项目可能需要使用子类扩展内部类.

我不喜欢将所有这些类公开以创建公共库的想法.我认为它暴露了太多容易反编译和打破设计.

是创建源代码副本并使这些文件在项目之间保持同步的唯一真正选择吗?或者是否有某种方式我可以共享代码并仍然为每个项目获得一个单独的库,只暴露少数预期的公共接口和类?

我正在使用Visual Studio 2010.

UPDATE

感谢有关反编译和"私人"访问的说明.我想我可以考虑将混淆器应用于几个输入库,所有这些都在一起,希望甚至可以混淆他们的公共连接.

从设计的角度来看,似乎答案肯定是使用朋友组件.

Jos*_*eld 8

你可能想看看做朋友集会:

http://msdn.microsoft.com/en-us/library/0tke9fxk(v=vs.80).aspx

[assembly:InternalsVisibleTo("someassembly")]
Run Code Online (Sandbox Code Playgroud)