如何设置 Internal 类,方法,属性对其他项目可见
2014-05-04 14:35
435 查看
internal 修饰符时程序集内部其他类可见。但对程序集外的类不可见,这样就很好的封装了可见性。
但是,我们也许会碰到类似的情况,特别是基于已有代码开发新的代码时,你会发现很多 internal 的类,方法已经很好的封装了完整的功能,没有必要再重新写一遍,或者仅仅是拷贝一遍代码(拷贝代码号称是代码的第一号杀手,因为这会导致同一可能的问题在多处出现,导致一系列的代码臭味-Agile)。
但是基于 OCP 原则,我们通常不能再在已有的程序集中(即 internal 所在的项目中)添加新的代码,而影响依然工作的程序集。
我们只能去添加一个新的项目,生成一个新的程序集。但是这个程序集如何使用已经存在的 Internal 的类,方法?
答案是 InternalVisibleTo 属性:http://msdn.microsoft.com/zh-cn/library/bb385840
打开 AssemblyInfo.cs 文件,位于 Properties 文件下
添加 [assembly:InternalsVisibleTo("程序集名称")] 项
这样你可以在指定的程序集中访问它了
需要注意的是,如果 Internal 所在的程序是强签名的,那么对其可见的程序集也要求时强签名的。
但是,我们也许会碰到类似的情况,特别是基于已有代码开发新的代码时,你会发现很多 internal 的类,方法已经很好的封装了完整的功能,没有必要再重新写一遍,或者仅仅是拷贝一遍代码(拷贝代码号称是代码的第一号杀手,因为这会导致同一可能的问题在多处出现,导致一系列的代码臭味-Agile)。
但是基于 OCP 原则,我们通常不能再在已有的程序集中(即 internal 所在的项目中)添加新的代码,而影响依然工作的程序集。
我们只能去添加一个新的项目,生成一个新的程序集。但是这个程序集如何使用已经存在的 Internal 的类,方法?
答案是 InternalVisibleTo 属性:http://msdn.microsoft.com/zh-cn/library/bb385840
打开 AssemblyInfo.cs 文件,位于 Properties 文件下
添加 [assembly:InternalsVisibleTo("程序集名称")] 项
这样你可以在指定的程序集中访问它了
需要注意的是,如果 Internal 所在的程序是强签名的,那么对其可见的程序集也要求时强签名的。
相关文章推荐
- jquery如何设置与去除disabled属性?五种方法
- 如何在Renderer中设置属性 Renderer中设置属性的方法实例
- 开发项目时,提示 找不到类的解决方法,以及如何设置编译源目录
- 如何通过样式来处理根据自身其他属性内容赋值其他属性值的方法研究
- Context3D类中的configureBackBuffer方法(设置渲染缓冲区的视口尺寸和其他属性)
- VS2010 项目属性的默认包含路径设置方法
- S4.1_Struts2_ActionAdvance 在action动作类里定义增删改方法,在struts.xml中的action method属性如何设置?
- 如何设置一个style做一个属性触发去改变其他的属性值<style的相关内容>?
- Java中,如何调用“其他类的方法中生成的实例化的对象”的属性?
- VS2010项目属性的默认包含路径设置方法
- 如何在低api中使用View的属性设置方法如setAlpha等
- 如何配置tomcat项目的默认页面为.action或其他后缀名的方法(文件)
- IDEA 如何设置和修改项目属性?
- 向其他项目中的属性传递属性的方法。从基类打开窗体的方法
- VS2010 项目属性的默认包含路径设置方法
- VS2010 项目属性的默认包含路径设置方法
- VS2010 项目属性的默认包含路径的两种设置方法
- VS2010 项目属性的默认包含路径设置方法
- 如何使Internal类型对其他程序集可见?
- 如何在低api中使用View的属性设置方法如setAlpha等