自定义 My 中可用的对象 (Visual Basic)
本主题介绍如何通过设置项目的 _MYTYPE
条件编译常量,来控制要启用的 My
对象。 Visual Studio 集成开发环境 (IDE) 为与项目类型同步的项目保留 _MYTYPE
条件编译常量。
预定义的 _MYTYPE 值
必须使用 /define
编译器选项来设置 _MYTYPE
条件编译常量。 为 _MYTYPE
常量指定自己的值时,必须将字符串值用反斜杠/引号(\")序列括起来。 例如,可以使用:
/define:_MYTYPE=\"WindowsForms\"
下表显示了为几个项目类型设置的 _MYTYPE
条件编译常量。
项目类型 | _MYTYPE 值 |
---|---|
类库 | “Windows” |
控制台应用程序 | “Console” |
Web | “Web” |
Web 控件库 | “WebControl” |
Windows 应用程序 | “WindowsForms” |
Windows 应用程序(从自定义 Sub Main 开始时) |
“WindowsFormsWithCustomSubMain” |
Windows 控件库 | “Windows” |
Windows 服务 | “Console” |
空 | “Empty” |
注意
不管 Option Compare
语句如何设置,所有条件编译字符串比较均区分大小写。
从属 _MY 编译常量
相反,_MYTYPE
条件编译常量控制多个其他 _MY
编译常量的值:
_MYTYPE | _MYAPPLICATIONTYPE | _MYCOMPUTERTYPE | _MYFORMS | _MYUSERTYPE | _MYWEBSERVICES |
---|---|---|---|---|---|
“Console” | “Console” | “Windows” | 未定义 | “Windows” | true |
“Custom” | 未定义 | Undefined | Undefined | Undefined | 未定义 |
“Empty” | 未定义 | Undefined | Undefined | Undefined | 未定义 |
“Web” | 未定义 | “Web” | false | “Web” | false |
“WebControl” | 未定义 | “Web” | false | “Web” | true |
“Windows”或“” | “Windows” | “Windows” | 未定义 | “Windows” | true |
“WindowsForms” | “WindowsForms” | “Windows” | true | “Windows” | true |
“WindowsFormsWithCustomSubMain” | “Console” | “Windows” | true | “Windows” | true |
默认情况下,未定义的条件编译常量解析为 FALSE
。 在编译项目以覆盖默认行为时,可以为未定义的常量指定值。
注意
如果 _MYTYPE
设置为“Custom”,则项目包含 My
命名空间,但不包含任何对象。 但是,将 _MYTYPE
设置为“Empty”将阻止编译器添加 My
命名空间及其对象。
下表描述了 _MY
编译常量的预定义值的效果。
返回的常量 | 含义 |
---|---|
_MYAPPLICATIONTYPE |
如果常量为“Console”、“Windows”或“WindowsForms”,则启用 My.Application :-“Console”版本派生自 ConsoleApplicationBase。 其成员比“Windows”版本少。 -“Windows”版本派生自 ApplicationBase。其成员比“WindowsForms”版本少。 - My.Application 的“WindowsForms”版本派生自 WindowsFormsApplicationBase。 如果 TARGET 常量定义为“winexe”,则类包含 Sub Main 方法。 |
_MYCOMPUTERTYPE |
如果常量为“Web”或“Windows”,则启用 My.Computer :-“Web”版本派生自 ServerComputer,其成员比“Windows”版本少。 - My.Computer 的“Windows”版本派生自 Computer。 |
_MYFORMS |
如果常量为 TRUE ,则启用 My.Forms 。 |
_MYUSERTYPE |
如果常量为“Web”或“Windows”,则启用 My.User :- My.User 的“Web”版本与当前 HTTP 请求的用户标识相关联。- My.User 的“Windows”版本与线程的当前主体相关联。 |
_MYWEBSERVICES |
如果常量为 TRUE ,则启用 My.WebServices 。 |
_MYTYPE |
如果常量为“Web”,则启用 My.Log 、My.Request 和 My.Response 。 |