C#:友元程序集
C#中的訪問修飾符Internal可以說是介于Public和Private之間,可以使類型在同程序集中可以被互相訪問。但有時(shí)會(huì)有這樣的需求,我們希望一個(gè)程序集中的類型可以被外部的某些程序集可以訪問,這時(shí)當(dāng)然不能設(shè)置成Public,否則可以被所有的外部程序集訪問。要達(dá)到上述要求我們可以使用友元程序集。 下面用一個(gè)簡單的例子來介紹下友元程序集。 1 在一個(gè)解決方案中創(chuàng)建兩個(gè)類庫項(xiàng)目TestA和TestB,分別在兩個(gè)類庫項(xiàng)目中創(chuàng)建類A和類B。 2 在項(xiàng)目TestA中添加對項(xiàng)目TestB的引用。 3 將項(xiàng)目TestB中的類B訪問級(jí)別設(shè)置為Internal。namespace TestB { internal class B { } } 4 現(xiàn)在在TestA項(xiàng)目的類A中是肯定不能訪問到類B的,如果想讓類A可以訪問類B,必須將項(xiàng)目TestA的程序集添加為項(xiàng)目TestB程序集的友元程序集。添加友元程序集我們要使用InternalIsVisibleTo特性,使用該特性需要添加命名空間using System.Runtime.CompilerServices。 5 在B類中使用InternalIsVisibleTo特性將程序集TestA添加為友元程序集。using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("TestA")] namespace TestB { internal class B { } } 6 InternalIsVisibleTo特性也可以添加到AssemblyInfo.cs中。 7 現(xiàn)在在項(xiàng)目TestA的類A中就可以訪問TestB項(xiàng)目的類B了。
轉(zhuǎn)載于:https://blog.51cto.com/oec2003/1050316
總結(jié)
- 上一篇: 杨建:网站加速--内容简介
- 下一篇: 浅析Web2.0技术