0

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

前任。

public class SomeThing(){} 

或者

internal class Something(){}

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

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

4

2 回答 2

1

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

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

3.5.2 可访问域

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

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

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

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

  • 如果 M 声明的可访问性是公共的,则 M 的可访问域是 T 的可访问域。
  • 如果声明的 M 的可访问性是受内部保护的,则令 D 是 P 的程序文本和从 T 派生的任何类型的程序文本的并集,T 是在 P 外部声明的。M 的可访问域是可访问域的交集T 与 D。
  • 如果声明的 M 的可访问性受到保护,则令 D 是 T 的程序文本和从 T 派生的任何类型的程序文本的并集。M 的可访问域是 T 的可访问域与 D 的交集。
  • 如果声明的 M 的可访问性是内部的,则 M 的可访问域是 T 的可访问域与 P 的程序文本的交集。
  • 如果 M 声明的可访问性是私有的,则 M 的可访问域是 T 的程序文本。
于 2013-03-04T09:05:13.563 回答
0

和 TypeAttributes NotPublic?

于 2013-03-04T08:52:11.453 回答