调用将从托管应用程序中,通过一个 DLL 函数,间接地传递给托管实现。在用平台调用调用的多种 DLL 函数中,有些函数要求正确地运行托管代码中的回调函数。
10. 您正在写的下面的代码是,调用一个函数从Win32应用程序编程接口( API )通过使用平台调用。
Int rc=MessageBox(hWnd,text,caption,type)
A. [DllImport(\
public static extern int MessageBox(int hWnd, String text, String caption, uint type); B. [DllImport(\
public static extern int MessageBoxA(int hWnd,String text, String caption, uint type); C. [DllImport(\
public static extern int Win32API_User32_MessageBox(int hWnd, String text, String caption, uint type);
D. [DllImport(@\
public static extern int MessageBox(int hWnd, String text, String caption, uint type); Answer: A
解析:第一章 P8
此程序从答案上看,生成的DLL的名字是user32,所以属性指出 [dllimport(“user32”)]而D指出了路径,因为已经指明是win32中的接口,所以默认调用就可以,不用再指明路径。而B和C是方法名称写错。
11.您创建了一个应用程序通过电子邮箱发送信息。 在您的本地服务器上有一个有效的SMTP服务器。SMTP服务器的名称smtp.contoso.com 。要测试应用程序,您使用的源地址是:me@contoso.com ,并发送信息到目标地址:you@contoso.com 。该代码段应该使用哪一段?
A. MailAddress addrFrom = new MailAddress(\ MailAddress addrTo = new MailAddress(\ MailMessage message = new MailMessage(addrFrom, addrTo);
message.Subject = \ B. string strSmtpClient = \ string strFrom = \ string strTo = \ string strSubject = \ string strBody = \
MailMessage msg = new MailMessage(strFrom, strTo, strSubject, strSmtpClient);
C. MailAddress addrFrom = new MailAddress(\ MailAddress addrTo = new MailAddress(\ MailMessage message = new MailMessage(addrFrom, addrTo); message.Subject = \ message.Body = \
SmtpClient client = new SmtpClient(\ client.Send(message);
D. MailAddress addrFrom = new MailAddress(\ MailAddress addrTo = new MailAddress(\ MailMessage message = new MailMessage(addrFrom, addrTo); message.Subject = \ message.Body = \
SocketInformation info = new SocketInformation(); Socket client = new Socket(info);
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); byte[] msgBytes = enc.GetBytes(message.ToString()); client.Send(msgBytes); 答案: C
解析:这是一个电子邮件发送的典型示例。C答案是固定用法。
12. 您需要建立一个名为MyAssembly动态程序集。并需要保存此程序集到磁盘。应该使用哪个代码段?
A. AssemblyName myAssemblyName = new AssemblyName(); myAssemblyName.Name = \
AssemblyBuilder myAssemblyBuilder =AppDomain.CurrentDomain.DefineDynamicAssembly (myAssemblyName, AssemblyBuilderAccess.Run); myAssemblyBuilder.Save(\
B. AssemblyName myAssemblyName = new AssemblyName(); myAssemblyName.Name = \
AssemblyBuilder myAssemblyBuilder =AppDomain.CurrentDomain.DefineDynamicAssembly (myAssemblyName, AssemblyBuilderAccess.Save); myAssemblyBuilder.Save(\
C. AssemblyName myAssemblyName =new AssemblyName();
AssemblyBuilder myAssemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly (myAssemblyName, AssemblyBuilderAccess.RunAndSave);
myAssemblyBuilder.Save(\
D. AssemblyName myAssemblyName =new AssemblyName(\
AssemblyBuilder myAssemblyBuilder =AppDomain.CurrentDomain.DefineDynamicAssembly (myAssemblyName, AssemblyBuilderAccess.Save); myAssemblyBuilder.Save(\ 答案: B
解析:第三章 :程序集
声明一个程序集的用法,因为要指明程序集的名称,所以C错误,排除,可以看AB和D,因为A是Run,而题目要求的是保存,所在A排除,看B和D,因为创建的是动态的程序集,需要保存到默认路径下,D保存到C盘根目录底下是错误的。
13.您需要写一个代码段来执行以下任务: 检索每个暂停服务的名称
通过的名用集合的Add方法添加到集合中。 您应该用哪个代码实现?
纠正翻译:您需要写一个代码段来执行以下任务: 检索每个暂停服务的名称
通过集合名称为Collection1的Add方法添加到集合中。 您应该用哪个代码实现?
A. ManagementObjectSearcher searcher = new ManagementObjectSearcher(\Win32_Service where State = 'Paused'\
foreach (ManagementObject svc in searcher.Get()) {Collection1.Add(svc[\ B. ManagementObjectSearcher searcher = new ManagementObjectSearcher(\Win32_Service\
foreach (ManagementObject svc in searcher.Get()) { Collection1.Add(svc[\ C. ManagementObjectSearcher searcher = new ManagementObjectSearcher( \from Win32_Service\
foreach (ManagementObject svc in searcher.Get())
{if ((string) svc[\ }} D. ManagementObjectSearcher searcher =new ManagementObjectSearcher(); searcher.Scope = new ManagementScope(\ foreach (ManagementObject svc in searcher.Get())
{if ((string)svc[\ }} 答案: A
解析:此题考察的是ManagementObjectSearcher类的使用,此类的构造函数有六个重载的 ManagementObjectSearcher:用来查询暂停服务或网络中的网络
方法,其中之一就是A答案中的传入一个字符串语句。而且也考察了SQL中查询服务的方法。见MSDN,如下为示例。
ManagementObjectSearcher s = new ManagementObjectSearcher(\* FROM Win32_Service\
foreach (ManagementObject service in s.Get()) {
Console.WriteLine(service.ToString()); }
14.贵公司使用的一个名为Application1的应用程序,此程序使用的.net Framework的版本是1.0。这个应该程序已经安装在了一台共享的计算机中,此计算机中已安装了.net Framework 1.0和1.1的版本。您需要移动此应用程序到另一台计算机中,此计算机已安装.net Framework 1.1和2.0的版本。此应用程序和1.1的版本是兼容的,但是与.net
Framework2.0是不兼容的。您需要确保应用程序在新计算机上使用.net Framework的1.1版本。您将怎样做?
A. 将以下XML 元素添加到应用程序配置文件。
B. 将以下XML 元素添加到应用程序配置文件。
xmlns=\
C. 将以下XML 元素添加到计算机配置文件。
D. 将以下XML 元素添加到计算机配置文件。
xmlns=\
答案: A
解析:看题目说明,因为此应用程序是与1.1兼容的,这就好办了,只需要在应用程序的配置文件中指明此应用程序使用的.net FrameWork的版本就可以了。又因为机器上已经安装了2.0和1.1,所以使用A来配置一下就可以。指明supportedRuntime为1.1版本即可。
15.您使用的是VS2005的编译器来解析一个返回string类型的方法。您给此输出参数命名为fName,您需要写一段代码来打印信息,如果fName的值不等于John则打印:“Test Failed.”。您还需要确保该代码段不间断的执行应用程序。该代码段应该使用如下哪个选项?
纠正翻译:
您正在使用Microsoft Visual Studio IDE 检查返回字符串的方法的输出。您将该方法的输出赋给一个名
为fName 的字符串变量。
您需要编写一个代码段,该代码段在单一行中打印以下内容 · 信息:\”
· fName 的值(如果fName 的值不等于“John”) 您还需要确保代码段同时能不中断应用程序的执行。 您应该使用哪个代码段?
A. Debug.Assert(fName == \