我正在读Dino Esposito的一本书Microsoft .NET:为企业架构应用程序.
在第3章中,它讨论了单元测试并说"你首先要在文本夹具中对相关测试进行分组.文本夹具只是特定于测试的类,其中方法通常代表要运行的测试."
它一遍又一遍地提到文字装置,所以它不能是一个错字.
这本书是否意味着"测试装置"?或者这两个不同的东西?
我正在逆向设计一个巨大的存储过程.其中有大量的BEGIN ENDs,并非所有缩进都适当,多层深,而且我有时间发现哪些BEGIN END对彼此匹配.
有没有一种简单的方法可以找出哪些配对彼此匹配.我知道在Visual Studio中,您可以使用ctr +从开放式支架跳到结束支架,并且在SSMS 2008中也是如此.但我正在使用2005.
有任何想法吗?
在C#我有这个:
[DllImport("user32.dll", EntryPoint = "GetDesktopWindow")]
public static extern IntPtr GetDesktopWindow();
Run Code Online (Sandbox Code Playgroud)
我试图转换为VB.NET因此:
<DllImport("user32.dll", EntryPoint:="GetDesktopWindow")>
Function GetDesktopWindow() As IntPtr
End Function
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误......"Imports System.Runtime.InteropServices.DllImportAttribute不能应用于实例方法."
有人可以解释我需要做些什么来解决这个问题,甚至更好,告诉我为什么?
谢谢!
我正在尝试在.NET控制台应用程序中发送电子邮件.我有一个SMTP服务器,其iP地址为XXXX(为了保护无辜而进行了清理).
已设置SMTP服务器(已配置中继)以允许来自托管.NET控制台应用程序的服务器的电子邮件,并将该电子邮件发送到外部世界.
我已经使用telnet从托管控制台应用程序的服务器测试了这个.我使用SMTP服务器的IP地址从托管控制台应用程序的服务器成功发送了一封带有telnet控制台的电子邮件.使用telnet时无需身份验证.我没有获得任何连接凭据.
但是当我尝试在.NET应用程序中执行此操作时,我收到以下错误:
Syntaz错误,命令无法识别.服务器响应是:Helo命令被拒绝:需要完全限定的主机名
这是我的代码:
string mailMessagetest = "test";
string subjecttest = "test";
List<string> recipienttest = new List<string>();
recipienttest.Add("me@mydomain.com");
utility.SendMail(recipienttest, subjecttest, mailMessagetest);
Run Code Online (Sandbox Code Playgroud)
这是SendMail函数:
public static void SendMail(List<string> recipient, string subject, string message)
{
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("myfriend@mydomain.com");
foreach (string to in recipient)
{
mailMessage.To.Add(to);
}
mailMessage.Subject = subject;
mailMessage.Body = message;
SmtpClient client = new SmtpClient();
client.Host = "X.X.X.X";
client.Port = 25;
client.Send(mailMessage);
}
Run Code Online (Sandbox Code Playgroud) 我正在阅读有关拳击的内容,书中说"拳击可以正式定义为通过将变量存储在aSystem.Object中而将值类型显式转换为相应的引用类型的过程." (重点补充)
我的问题不是关于拳击,但这让我思考 - System.Object实例如何以及在何处存储分配给它的值/变量/对象.所以我不仅想知道
object objShort = 5;
Run Code Online (Sandbox Code Playgroud)
但是也
object someOtherObj = someReallyComplicatedObject;
Run Code Online (Sandbox Code Playgroud)
我一直在寻找,包括这里(MSDN System.Object),我没有看到任何描述System.Object实例如何实际存储其数据的地方.
对象只是简单地存储指向分配给它的对象的指针,或者在装箱的情况下,指向堆栈上值类型的指针?
(乔恩,请原谅我,如果这也出现在你的书中.我订购了它,它正在路上!)
线程都共享资源.这是围绕多线程操作的整个问题.
MSDN说:
您必须小心不要操作DoWork事件>处理程序中的任何用户界面对象.而是通过ProgressChanged和RunWorkerCompleted事件与用户界面进行通信.
BackgroundWorker事件不是跨AppDomain边界编组的.不要使用BackgroundWorker组件在多个AppDomain中执行多线程操作.
然而,当我使用backgroundworker时,并不是我需要小心不要操纵任何UI对象,如果我尝试从DOWork事件中访问UI组件,那就不行了.代码编译,但是当DoWork的代码运行时,我收到一个错误:
跨线程操作无效:控制从其创建的线程以外的线程访问的"utAlerts".
MSDN没有说明这是怎么做的或为什么.backgroundworker是否装饰了一些阻止这种情况的属性?这是如何完成的?
我理解互斥的概念.这里解释得非常好.
但现在我想知道互斥锁到底是什么.我的猜测是.NET正在采用一些原始的系统资源(甚至可能只是一个内存地址?)并将其包装在一个称为互斥锁的对象中.
有谁知道在.NET中如何实现互斥锁?
第3层 - 接口
第2层 - 业务逻辑(从用户获取输入,检查是否有效,发送到数据库功能)
第1层 - 数据库(创建,更新,获取记录等)
用户可以添加许多联系电话号码,如果是添加的第一个电话号码,系统会自动将该电话号码设置为主电话号码,并且用户可以自行更改其主要电话号码.
当在数据库中创建第一个电话号码记录时,哪个层负责检查电话号码是否需要设置为主电话号码?
鉴于这个例子:
Animal thisIsACat = new Cat();
有没有从隐式转换Cat到Animal?
为了澄清:
假设:
class Animal
{
}
class Cat: Animal
{
}
Run Code Online (Sandbox Code Playgroud) 为什么.NET框架指定了标准委托?声明一个新的委托类型很简单,可以在一行代码中完成.
public delegate void Something<T>(T obj);
为什么他们定义所有这些其他类型(行动,行动等)?
目的是什么以及由此获得什么?
http://msdn.microsoft.com/en-us/library/system.action.aspx
我想知道的另一件事是他们继续定义17个版本,除了它们采用不同数量的类型参数之外,它们都是相同的.但为什么要停在17岁?是什么通知这种决定?