如何使用CodeDOM创建私有类

本文关键字:创建 何使用 CodeDOM | 更新日期: 2023-09-27 18:02:08

我使用CodeDOM编译一个基于SQL server检索数据表的*.cs文件。因此,编译后的代码应该是特定表的实体类。我设法将类编译为公共类、内部类或接口类。

交货。

public class SomeThing(){} 

internal class Something(){}

但是问题是没有属性可以使用CodeDOM使类私有。有什么办法能完成这项工作吗?

我使用这段代码作为模板http://msdn.microsoft.com/en-us/library/ms404245(v=vs.100).aspx

如何使用CodeDOM创建私有类

顶级私有类没有多大意义,因为它们对其他类型不可见。嵌套类可以是私有的。

这是c#语言规范的摘录:

3.5.2可访问域

顶级未绑定类型T(§4.4.3)的可访问域在程序中声明P的定义如下:

  • 如果T的可访问性声明为public,则T的可访问性域是P的程序文本以及引用
  • 的任何程序。
  • P。如果声明的T的可访问性是内部的,则T的可访问域是p的程序文本。

从这些定义可以得出a类的程序文本始终至少是顶级未绑定类型声明该类型的程序。的可访问域构造类型T是的交点非绑定泛型类型T的可访问域和类型参数A1,…,AN的可访问域。

在类型T中声明的嵌套成员M的可访问域在一个程序中,P的定义如下(注意M本身可以可能是一个类型):

  • 如果M的可访问性声明为public,则M的可访问域为t的可访问域。
  • 如果M声明的可访问性是内部保护的,则设D为P的程序文本与任意类型的程序文本的并集派生自T,它在p之外声明M的可达域为T与d的交集
  • 如果M声明的可访问性受到保护,则设D为T的程序文本与派生的任意类型的程序文本的并集T. M的可达域是T与d的可达性域
  • 如果M声明的可访问性是内部的,则M的可访问性域是T的可访问性域与的交集P.
  • 程序文本
  • 如果M声明的可访问性是私有的,则M的可访问域是t的程序文本。

和TypeAttributes NotPublic?