在团队开发中,如果一个程序集中要调用另外一个程序集,但是要被调用的那个程序集又不想用public来公开自己的类,
那么怎么办,就是用最后一种internal来用来做类的可见性了。
下面来看一个简单例子:
1. 在一个解决方案中创建两个类库项目A和B,分别在两个类库项目中创建类ClassA和ClassB
-
将项目B中ClassB的访问级别设置为internal
-
在项目A中添加对项目B的引用
-
此时在ClassA中是访问不到ClassB的,如果想让ClassA可以访问ClassB,必须将项目A的程序集添加为项目B程序集的友元程序集。添加友元程序集我们要使用InternalIsVisibleTo特性,使用该特性需要添加命名空间
using System.Runtime.CompilerServices。
- 在ClassB类中使用InternalIsVisibleTo特性将程序集tA添加为友元程序集。
- 在ClassB类中使用InternalIsVisibleTo特性将程序集tA添加为友元程序集。
-
InternalIsVisibleTo特性也可以添加到AssemblyInfo.cs中。
- 现在在项目A的ClassA中就可以访问B项目的ClassB了。