最近在忙于Silverlight 上打印功能的实现,采用Report Definition Language(RDL) (一种 SQL Server 基于报表定义规范)。大体情况是:项目中一种原有的数据格式需要转换成一种通用的数据格式,由它来生成生成各种类型的文档(PDF、BMP等)。
在定义框架的控件类时,真正对internal 访问修饰符有了较深的认识和使用,特总结如下,供参考:
1. internal 关键字是类型和类型成员的访问修饰符。内部成员只有在同一程序集中的文件内才是可访问的。有关程序集的更多信息,请参见组件和程序集。
2. 内部访问通常用于基于组件的开发,因为它使一组组件能够以私有方式进行合作,而不必向应用程序代码的其余部分公开。
例如,用于生成图形用户界面的框架可以提供“控件”类和“窗体”类,这些类通过使用具有内部访问能力的成员进行合作。由于这些成员是内部的,它们不向正在使用框架的代码公开。
在定义具有内部访问能力的成员的程序集外部,引用该成员是错误的
警告 尽管不能用 C# 重写 internal virtual 方法,但可以用某些语言(如使用 Ilasm.exe 的文本 Microsoft 中间语言 (MSIL) 重写它。有关 internal 和其他访问修饰符的比较请参见 可访问性级别。