小编ric*_*ard的帖子

单元测试:TEST Fixture或TEXT Fixture

我正在读Dino Esposito的一本书Microsoft .NET:为企业架构应用程序.

在第3章中,它讨论了单元测试并说"你首先要在文本夹具中对相关测试进行分组.文本夹具只是特定于测试的类,其中方法通常代表要运行的测试."

它一遍又一遍地提到文字装置,所以它不能是一个错字.

这本书是否意味着"测试装置"?或者这两个不同的东西?

unit-testing

3
推荐指数
1
解决办法
1578
查看次数

如何在复杂的SQL Server查询中找到匹配的BEGIN END对?

我正在逆向设计一个巨大的存储过程.其中有大量的BEGIN ENDs,并非所有缩进都适当,多层深,而且我有时间发现哪些BEGIN END对彼此匹配.

有没有一种简单的方法可以找出哪些配对彼此匹配.我知道在Visual Studio中,您可以使用ctr +从开放式支架跳到结束支架,并且在SSMS 2008中也是如此.但我正在使用2005.

有任何想法吗?

sql sql-server-2005

3
推荐指数
1
解决办法
5215
查看次数

C#DLLImport转换为VB.NET DLLImport ...我错过了什么?

在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不能应用于实例方法."

有人可以解释我需要做些什么来解决这个问题,甚至更好,告诉我为什么?

谢谢!

vb.net pinvoke interop dllimport c#-to-vb.net

3
推荐指数
1
解决办法
7802
查看次数

.NET SMTP邮件 - error = helo命令被拒绝需要完全限定的主机名

我正在尝试在.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)

c# smtp hostname fully-qualified-naming

3
推荐指数
1
解决办法
1万
查看次数

System.Object如何在内部存储"对象"?

我正在阅读有关拳击的内容,书中说"拳击可以正式定义为通过将变量存储在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实例如何实际存储其数据的地方.

对象只是简单地存储指向分配给它的对象的指针,或者在装箱的情况下,指向堆栈上值类型的指针?

(乔恩,请原谅我,如果这也出现在你的书中.我订购了它,它正在路上!)

.net store object

2
推荐指数
2
解决办法
751
查看次数

为什么不能从后台工作者访问UI组件?

线程都共享资源.这是围绕多线程操作的整个问题.

MSDN说:

您必须小心不要操作DoWork事件>处理程序中的任何用户界面对象.而是通过ProgressChanged和RunWorkerCompleted事件与用户界面进行通信.

BackgroundWorker事件不是跨AppDomain边界编组的.不要使用BackgroundWorker组件在多个AppDomain中执行多线程操作.

然而,当我使用backgroundworker时,并不是我需要小心不要操纵任何UI对象,如果我尝试从DOWork事件中访问UI组件,那就不行了.代码编译,但是当DoWork的代码运行时,我收到一个错误:

跨线程操作无效:控制从其创建的线程以外的线程访问的"utAlerts".

MSDN没有说明这是怎么做的或为什么.backgroundworker是否装饰了一些阻止这种情况的属性?这是如何完成的?

.net c# user-interface backgroundworker

2
推荐指数
1
解决办法
3425
查看次数

.NET如何实现互斥?

我理解互斥的概念.这里解释得非常好.

但现在我想知道互斥锁到底是什么.我的猜测是.NET正在采用一些原始的系统资源(甚至可能只是一个内存地址?)并将其包装在一个称为互斥锁的对象中.

有谁知道在.NET中如何实现互斥锁?

.net c# mutex

2
推荐指数
1
解决办法
1884
查看次数

软件设计 - 三层架构

第3层 - 接口

第2层 - 业务逻辑(从用户获取输入,检查是否有效,发送到数据库功能)

第1层 - 数据库(创建,更新,获取记录等)


用户可以添加许多联系电话号码,如果是添加的第一个电话号码,系统会自动将该电话号码设置为主电话号码,并且用户可以自行更改其主要电话号码.

当在数据库中创建第一个电话号码记录时,哪个层负责检查电话号码是否需要设置为主电话号码?

c# architecture asp.net design-patterns

2
推荐指数
1
解决办法
558
查看次数

Animal thisIsACat = new Cat(); - 这是隐式转换吗?

鉴于这个例子:

Animal thisIsACat = new Cat();

有没有从隐式转换CatAnimal

为了澄清:

假设:

class Animal
{

}

class Cat: Animal
{

}
Run Code Online (Sandbox Code Playgroud)

.net c# implicit-conversion

2
推荐指数
1
解决办法
349
查看次数

为什么.NET框架指定标准委托(Action)?

为什么.NET框架指定了标准委托?声明一个新的委托类型很简单,可以在一行代码中完成.

public delegate void Something<T>(T obj);

为什么他们定义所有这些其他类型(行动,行动等)?

目的是什么以及由此获得什么?

http://msdn.microsoft.com/en-us/library/system.action.aspx

我想知道的另一件事是他们继续定义17个版本,除了它们采用不同数量的类型参数之外,它们都是相同的.但为什么要停在17岁?是什么通知这种决定?

.net c# delegates

2
推荐指数
1
解决办法
276
查看次数