打印本文 打印本文 关闭窗口 关闭窗口
向Visual Basic程序员介绍My命名空间(二)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1848  更新时间:2009/4/23 18:59:11  文章录入:mintao  责任编辑:mintao
及查询他们所属的组群。

图 3

My.User 选项卡

控制表格控件的代码如下:

myAppDS.MyUser.AddMyUserRow("Display Name", _

   My.User.DisplayName)

myAppDS.MyUser.AddMyUserRow("Domain Name", _

   My.User.DomainName)

myAppDS.MyUser.AddMyUserRow("User Name", _

   My.User.UserName)

myAppDS.MyUser.AddMyUserRow("Windows Role", _

   My.User.WindowsRoles(0).ToString())

这段代码访问了当前用户的信息,这非常简单。你要做的所有事情就是访问User对象的属性。User对象是由下列属性或方法组成的。

My.User

属性/方法                                                          描述

DisplayName

允许你访问当前登录用户的显示名称。

DomainName

允许你访问当前登录用户所属的域名,如果他属于某个域的话。

IsInRole

允许你查询用户是否属于一个特定的角色。

UserName

允许你访问当前登录用户的用户名。

WindowsRole

WindowsRole是一个包含当前登录用户帐号所属的全部角色/组群信息的集合。

My.User在开发中的相关应用

My.User能够给你相当多的关于当前登录用户的信息。在很多方面,My所提供的User对象都是学习或使用.NET Framework的绝佳捷径之一。

在以前版本的.NET Framework中,如果你想访问类似My.User所提供的功能,你必须写下面这么多代码。

Imports System.Security.Principal

Imports System.Threading.Thread

Dim winPrin As WindowsPrincipal = Thread.CurrentPrincipal

MessageBox.Show(winPrin.Identity.Name)

或者你得写成这样

MessageBox.Show(System.Threading.Thread.CurrentPrincipal.Identity.Name)

但是,在使用了My之后就变得如此直观。

My.User.UserName

这是一个用My简化对.NET Framework操作的一个经典例子。很多开发人员第一次面对Framework时,不会本能地想到要从Principal对象或从当前线程取得进程身份才能获得当前登录的用户的帐号名称。很多开发人员以为这种信息肯定是在更高级的抽象层次上才能得到。现在用My,获取这种信息既简单又快速。

My.WebServices和 My.Forms

接下来你将要学到 My命名空间另外两个主要功能,它们是My.WebServices和My.Forms。在进入这一节之前,我们先做一个简短的概述。

My.WebServices让你可以用和访问数据源一样简单的语法访问在项目中引用的Web服务。

dgOrders.DataSource = _

   My.WebServices.Northwind.GetOrders().Tables("Orders")

如果用.NET Framework 1.0/1.1,要想做到上面那行代码的功能,你必须创建一个WebService的实例。用这种My.WebServices提供的功能可以快捷访问所有添加到Web引用的Web服务。

最后一个重点My.Form将带回一种在Visual Basic桌面程序中出现,并暂时消失在VB.NET中的标志性的编程风格。如果你曾经用VB6开发过,你肯定知道下面这种代码,如果你的项目需要显示某个窗体:

Form2.Show

在VB.NET时代,你不能再用这种简单的语法了。在VB.NET中只能用下列代码显示一个窗体。

Dim frm1 As New Form1()

frm1.Show()

使用My.Forms,项目中所有的窗体都变成Forms集合的成员。另外如果你想访问某个窗体默认的实例,你根本不需要使用My.Forms。就是说下面的代码是等价的。

My.Forms.Form2.Show()

Form2.Show()

在接下来的章节里,你将学到更多用此方法显示窗体的功能(译注:可惜我们看不到了)。

如果你想看一些My.WebServices和My.Forms的例子,你可以看看示例程序相关的选项卡。所有这些工能将在本书的后边详细地叙述。(本文档只是此书的样章,所以到此为止了,想看后面请到亚马孙书店购买此书)

结论

My命名空间对于一个开发人员来说主要有四项功能。首先它提供很多了以前版本的.NET Framework没有的功能。第二,它提供了很多快速访问.NET Framework的BCL的快捷方式。第三,在一定程度上,它让你想问题时能将“计算机”类的词当作逻辑实体来操作。第四,它让一些你熟悉的旧语法回归到了Visual Basic中,比如Form1.Show。

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口