下午好。我应该如何使用C#,.NET平台和Visual Studio项目组织以下结构?
解决方案应包含多个项目(结果为dll或winmd)。 FrameworkB
和FrameworkC
依赖于FrameworkA
。来自ClassA
的FrameworkA
,来自ClassD
的FrameworkB
和来自ClassF
的FrameworkC
是公共的,并且对框架用户可见;他们无法访问其他类(不可能创建对象或调用方法)。在这种情况下,从ClassE
和ClassG
我们应该能够使用ClassB
和ClassC
的方法。
所以:
FrameworkA
,FrameworkB
和FrameworkC
应该是不同的.dll
或.winmd
文件(但B
和C
依赖于A
)。ClassB
,ClassC
,ClassE
和ClassG
应该是框架最终用户的私有,但B
和C
应该可见并使用E
和G
。Solution
FrameworkA
ClassA
ClassB
ClassC
FrameworkB
ClassD
ClassE
FrameworkC
ClassF
ClassG
根据this answer,您可以使用InternalsVisibleTo属性并在类B和C上使用内部访问修饰符。
这样,第一个程序集中的类可以由其他两个使用,但不能由客户端编写的软件使用。