自定义“我的”中可用的对象(Visual Basic)

本主题介绍如何通过设置项目的My条件编译常量来控制启用哪些_MYTYPE对象。 Visual Studio 集成开发环境(IDE)使 _MYTYPE 项目的条件编译常量与项目的类型保持同步。

预定义的 _MYTYPE 值

必须使用 /define 编译器选项设置 _MYTYPE 条件编译常量。 为 _MYTYPE 常量指定自己的值时,必须将字符串值括在反斜杠/引号 (\“) 序列中。 例如,可以使用:

/define:_MYTYPE=\"WindowsForms\"  

此表显示了多个项目类型设置的_MYTYPE条件编译常量。

项目类型 _MYTYPE 值
类库 “Windows”
控制台应用程序 “Console”
网络 网络
Web 控件库 “WebControl”
Windows 应用程序 “WindowsForms”
Windows 应用程序(从自定义 Sub Main 开始时) “WindowsFormsWithCustomSubMain”
Windows 控件库 “Windows”
Windows 服务 “Console”
“空”

注释

不管 Option Compare 语句如何设置,所有条件编译字符串比较均区分大小写。

从属 _MY 编译常量

条件编译常量 _MYTYPE 反过来控制若干其他编译常量 _MY 的值:

_MYTYPE _MYAPPLICATIONTYPE _MYCOMPUTERTYPE _MYFORMS _MYUSERTYPE _MYWEBSERVICES
“Console” “Console” “Windows” 未定义 “Windows”
“Custom” 未定义 未定义 未定义 未定义 未定义
“空” 未定义 未定义 未定义 未定义 未定义
网络 未定义 网络 网络
“WebControl” 未定义 网络 网络
“Windows”或“” “Windows” “Windows” 未定义 “Windows”
“WindowsForms” “WindowsForms” “Windows” “Windows”
“WindowsFormsWithCustomSubMain” “Console” “Windows” “Windows”

默认情况下,未定义的条件编译常量解析为 FALSE。 编译项目以替代默认行为时,可以为未定义的常量指定值。

注释

当设置为“Custom”时 _MYTYPE ,项目包含 My 命名空间,但它不包含任何对象。 但是,设置为 _MYTYPE “Empty”可防止编译器添加 My 命名空间及其对象。

下表描述了编译常量预定义值 _MY 的影响。

恒定 含义
_MYAPPLICATIONTYPE 如果常量为“控制台”、“Windows”或“WindowsForms”,则启用 My.Application

- “控制台”版本派生自 ConsoleApplicationBase。 成员数少于“Windows”版本。
- “Windows”版本派生自 ApplicationBase.,成员数少于“WindowsForms”版本。
- “WindowsForms”版本的My.Application派生自WindowsFormsApplicationBaseTARGET如果常量定义为“winexe”,则类包括一个Sub Main方法。
_MYCOMPUTERTYPE 如果常量为“Web”或“Windows”,则启用 My.Computer

- “Web”版本派生自 ServerComputer,成员数少于“Windows”版本。
- My.Computer 的“Windows”版本派生自 Computer
_MYFORMS 如果常量为 My.Forms,则启用 TRUE
_MYUSERTYPE 如果常量为“Web”或“Windows”,则启用 My.User

- “Web”版本 My.User 与当前 HTTP 请求的用户标识相关联。
- My.User 的“Windows”版本与线程的当前主体相关联。
_MYWEBSERVICES 如果常量为 My.WebServices,则启用 TRUE
_MYTYPE 启用 My.LogMy.RequestMy.Response,如果常量为“Web”。

另请参阅