天天看点

在其他程序集访问internal类

 本文将介绍如何在其他程序集访问internal类的方法

首先我们新建一个解决方案,其中同时新建两个类库<code>FooALibray</code>和<code>FooALibray</code>,如下:

在其他程序集访问internal类

其中<code>FooA</code>类代码如下:

然后我们在<code>Program</code>类调用<code>FooA</code>的<code>Print</code>方法:

那么我们怎么能够访问<code>internal</code>级别的<code>FooA</code>类呢?

 首先,我们在项目<code>FooALibray</code>新增-&gt;程序集信息文件,那么就获得一个初始的<code>AssemblyInfo</code>类了,然后我们只需新增以下代码:

那么,之前的那段代码能够正常编译则输出:

 假设<code>FooBLibray</code>也要访问<code>FooA</code>,是否还要再加入对<code>FooBLibray</code>程序集可见呢?答案是不用,还可以用以下方式:

在其他程序集访问internal类

将<code>FooBLibray</code>程序集名称改为<code>InternalsVisibleToAttributeSample</code>

该黑科技是林大佬告诉我的,嘿嘿~~

 我们合理的利用<code>InternalsVisibleToAttribute</code>程序集可见特性能够我们需要写Demo或者单元测试要引用到<code>internal</code>类的时候不去污染(修改成public)就能够访问它,这个特性再日常的工作流程中还是非常的好用的

c#