天天看點

在其他程式集通路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#