如何使用CodeDOM创建私有类?

时间:2013-03-04 08:38:45

标签: c# codedom

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

实施例。

public class SomeThing(){} 

internal class Something(){}

但问题是没有使用CodeDOM使类成为私有的属性。有没有办法完成这项工作?

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

2 个答案:

答案 0 :(得分:1)

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

以下是C#语言规范的摘录:

  

3.5.2辅助功能域

     

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

     
      
  • 如果T的声明可访问性是公开的,则T的可访问域是P的程序文本和任何引用的程序
  •   
  • P上。如果T的已声明可访问性是内部的,则T的可访问域是P的程序文本。
  •   
     

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

     

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

     
      
  • 如果M的声明可访问性是公开的,则M的可访问域是T的可访问域。
  •   
  • 如果M的声明可访问性在内部受到保护,则让D为P的程序文本和任何类型的程序文本的并集   派生自T,在P外宣布。可访问域   M是T的可访问域与D的交集。
  •   
  • 如果M的声明可访问性受到保护,则让D为T的程序文本与从中派生的任何类型的程序文本的并集。   T.M的可访问域是其中的交集   T的可访问性域与D。
  •   
  • 如果M的声明可访问性是内部的,则M的可访问性域是T的可访问性域的交集。   P。
  • 的程序文本   
  • 如果M的声明可访问性是私有的,则M的可访问域是T的程序文本。
  •   

答案 1 :(得分:0)

TypeAttributes NotPublic?