小编LCJ*_*LCJ的帖子

VS团队测试:测试类中的多个测试初始化​​方法

我在TeamTest中有一个名为"MyClassTest"的单元测试项目.这个项目有三个TestMethods.每种方法都需要自己的测试初始化​​步骤.但是当我将TestInitializeAttribute应用于三个初始化方法时,它表示不应该多次使用该属性.那么在Visual Studio Team Test中用于初始化每个测试方法的属性应该是什么?

参考:

  1. VS团队测试:使用Excel作为数据源的.Net单元测试:适配器失败

  2. 如何为Visual Studio测试项目创建启动和清理脚本?

  3. VS 2010使用自定义计数器加载测试结果

  4. 如何记录单元测试条目并离开MSTest

  5. 单元测试项目可以加载目标应用程序的app.config文件吗?

.net c# unit-testing visual-studio-2010

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

实体框架:多对多关系中的重复记录

我有以下实体框架代码的第一个代码.创建表并插入数据.但是俱乐部表中有重复的记录.

我的业务是: -

  1. 使用俱乐部创建应用创建俱乐部

  2. 使用person app创建人员

如何避免重复输入?

在此输入图像描述

    static void Main(string[] args)
    {
        Database.SetInitializer<NerdDinners>(new MyInitializer());

        CreateClubs();
        InsertPersons();

    }

    public static void CreateClubs()
    {

        string connectionstring = "Data Source=.;Initial Catalog=NerdDinners;Integrated Security=True;Connect Timeout=30";
        using (var db = new NerdDinners(connectionstring))
        {

            Club club1 = new Club();
            club1.ClubName = "club1";

            Club club2 = new Club();
            club2.ClubName = "club2";

            Club club3 = new Club();
            club3.ClubName = "club3";

            db.Clubs.Add(club1);
            db.Clubs.Add(club2);
            db.Clubs.Add(club3);

            int recordsAffected = db.SaveChanges();


        }
    }

    public static Club GetClubs(string clubName)
    {
        string connectionstring = "Data …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework ef-code-first

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

"EndResponse"可以提高ASP.Net页面的性能

Response.Redirect我的员工页面中有一个.它重定向到Salary页面.

Response.Redirect ("Salary.aspx");
Run Code Online (Sandbox Code Playgroud)

它工作正常,直到我添加异常处理如下.

try
{
   Response.Redirect ("Salary.aspx");
}
catch(Exception ex)
{
//MyLog();
    throw new Exception();
}

//Remaining code in event handler
Run Code Online (Sandbox Code Playgroud)

这引起了一个新的异常,说"线程正在被中止".我开始知道可以通过将endResponse重定向设置为false 来避免这种情况.

Response.Redirect(url, false);
Context.ApplicationInstance.CompleteRequest();
Run Code Online (Sandbox Code Playgroud)

新异常的解释:它总是抛出异常但由框架处理.因为我添加了一个try..catch它被捕到了(我正在抛出一个新的异常)

注意:CompleteRequest确实绕过了其他HTTP过滤器和模块,但它不会绕过当前页面生命周期中的其他事件

注意:Response.Redirect将此异常抛出到当前页面的结束处理.ASP .Net本身处理此异常并调用ResetAbort继续处理.

  1. "将endResponse设置为false"是否可以提高性能,因为不会抛出异常?
  2. "将endResponse设置为false"是否会降低性能,因为页面生命周期事件未终止?

陷阱

  1. 如果将endResponse设置为false,则将执行eventhandler中的剩余代码.因此,我们需要if检查剩余的代码(检查:是否未满足重定向条件).

参考

  1. 为什么Response.Redirect导致System.Threading.ThreadAbortException?
  2. ASP.NET异常"线程被中止"导致方法退出

c# asp.net health-monitoring

10
推荐指数
1
解决办法
939
查看次数

"不要在设计中使用抽象基类; 但在建模/分析中"

虽然我在OOAD有一些经验,但我是SOA的新手.

SOA设计的一个指导原则是"仅使用抽象类进行建模".从设计中忽略它们.抽象的使用可以有助于建模(分析阶段).

在分析阶段,我想出了一个BankAccount基类.从中派生的专业类是"FixedAccount"和"SavingsAccount".我需要创建一个服务,返回用户的所有帐户(帐户列表).应满足要求的服务结构应该是什么?

注意:如果您可以使用WCF提供代码演示,那将会很棒.

.net c# wcf soa ooad

9
推荐指数
1
解决办法
977
查看次数

在Windows服务中处理MSMQ消息

我有一个用于处理MSMQ消息的Windows服务.它依赖于以下逻辑

·Windows服务中有一个计时器.每隔十分钟,它将执行名为"ProcessMessages"的方法.

·在此方法中,它首先通过调用队列的GetAllMessages方法创建现有messageIds的列表.

·对于每个messageId,它接收消息(使用ReceiveById)并将其存储到文件中

有没有更好的方法来实现消息处理?

参考:http: //www.switchonthecode.com/tutorials/creating-a-simple-windows-service-in-csharp

注意:当我将其作为服务时,以下代码未提供所需的结果; 但是事件查看器中没有错误(我没有进行任何显式记录).当它是一个简单的控制台应用程序时工作正常.怎么纠正呢?[现在,当我在下面的评论中将会议改为"用户"时,它正在工作]

我的行为要求是在固定的时间段处理所有消息 - 比如上午10点和上午11点(每天).这样做的最佳方法是什么?

namespace ConsoleSwitchApp
{
    class Program : ServiceBase
    {
        private static Timer scheduleTimer = null;
        static MessageQueue helpRequestQueue = null;
        static System.Messaging.XmlMessageFormatter stringFormatter = null;

        static void Main(string[] args)
        {
            ServiceBase.Run(new Program());
        }

        public Program()
        {
            this.ServiceName = "LijosService6";

            //Queue initialize
            helpRequestQueue = new MessageQueue(@".\Private$\MyPrivateQueue", false);
            stringFormatter = new System.Messaging.XmlMessageFormatter(new string[] { "System.String" });

            //Set Message Filters
            MessagePropertyFilter filter = new MessagePropertyFilter();
            filter.ClearAll();
            filter.Body = true;
            filter.Label …
Run Code Online (Sandbox Code Playgroud)

.net c# wcf windows-services msmq

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

Convert.ToString对"NULL对象"和"NULL字符串"的行为有所不同

我在C#控制台应用程序中有foo(object)和foo2(string).代码2抛出异常,而代码1正常工作.

你能解释为什么它的表现如此(有MSDN参考)?

//代码1

object foo = null;
string test = Convert.ToString(foo).Substring(0, Convert.ToString(foo).Length >= 5 ? 5 : Convert.ToString(foo).Length);
Run Code Online (Sandbox Code Playgroud)

//代码2

string foo2 = null;
string test2 = Convert.ToString(foo2).Substring(0, Convert.ToString(foo2).Length >= 5 ? 5 : Convert.ToString(foo2).Length);
Run Code Online (Sandbox Code Playgroud)

c#

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

使用XML进行WCF请求验证

我有一个WCF使用.Net 4.0框架的SOAP Web服务.我正在使用contract first方法 - 即服务代码是使用WCSF Blue工具从手写WSDL生成的.

我对请求消息有以下要求.

如果价格低于100,则必须没有税元素,但如果它超过100,则需要纳税元素.

在XPath中,表达式如下

//t:price[. < 100][not(following::t:tax)] or 
//t:price[. >=100][following::t:tax]
Run Code Online (Sandbox Code Playgroud)

我可以在服务的C#代码中处理它.但我想使用任何XML技术在WSDL本身中定义规则.这将有助于客户端了解输入消息应该满足的业务验证.(这是业务规则的定义,其实现在WSDL本身;不会将其他文档共享给客户端.)

在WCF中实现它的最佳方法是什么?WSDL我可以在哪个部分定义,XML validations以便它将被处理WCF

在下面给出的前两个参考文献中,提到了一种关于XPath和C#处理程序(用于Web服务框架)的方法.我们不能在WCF中这样做吗?C#不能从WSDL读取XPath吗?怎么做?任何参考?

注意:我可以执行C#处理程序; 但business logic对于validation应该在XML

参考

  1. 使用业务规则验证扩展ASP.NET WebMethod框架 - 由Aaron Skonnard和Dan Sullivan完成
  2. WS-Policy和WSE 2.0断言处理程序 - 由Aaron Skonnard撰写
  3. Hartmut的盒子 - 使用WCF的四个原则和XML消息传递
  4. 使用WCF中的Schema进行消息验证
  5. 使用Schematron/XSD在C#中进行XML验证
  6. 在xsd中定义xml,其中属性确定可能的内容

.net c# wcf wsdl

9
推荐指数
1
解决办法
1714
查看次数

从Javascript中的字符串中获取最后一个单词

我们如何使用JavaScript/jQuery从字符串中获取最后一个单词?

在下面的场景中,最后一个单词是"Collar".单词用" - "分隔.

Closed-Flat-Knit-Collar
Flat-Woven-Collar
Fabric-Collar
Fabric-Closed-Flat-Knit-Collar
Run Code Online (Sandbox Code Playgroud)

javascript string jquery

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

创建数据库时主文件大小错误

我试图在SQL Server 2005中创建数据库并获得以下错误

Msg 1803,Level 16,State 1,Line 2

CREATE DATABASE语句失败.主文件必须至少为32 MB才能容纳模型数据库的副本.

创建SQL

CREATE DATABASE [MyDatabase] ON  PRIMARY 
    ( NAME = N'MyDatabase_Data', FILENAME = N'D:\SQL SERVER\DataFiles\MyDatabase\MyDatabase.MDF' , SIZE = 3096KB , MAXSIZE = 29687808KB , FILEGROWTH = 262144KB ), 
    ( NAME = N'MyDatabase_Data2', FILENAME = N'D:\SQL SERVER\DataFiles\MyDatabase\MyDatabase_Data2.ndf' , SIZE = 3096KB , MAXSIZE = 10485760KB , FILEGROWTH = 262144KB ), 
     FILEGROUP [FG_Indexes] 
    ( NAME = N'MyDatabase_Indexes', FILENAME = N'D:\SQL SERVER\DataFiles\MyDatabase\MyDatabase_Indexes.ndf' , SIZE = 1920KB , MAXSIZE = 27136000KB , FILEGROWTH = …
Run Code Online (Sandbox Code Playgroud)

sql-server

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

除LINQ中的LIKE条件外

我有一个包含文件路径的字符串列表.

List<string> allFilesWithPathList = new List<string>();

allFilesWithPathList.Add(@"G:\Test\A.sql");
allFilesWithPathList.Add(@"G:\Test\B.sql");
allFilesWithPathList.Add(@"G:\Test\C.sql");

return allFilesWithPathList;
Run Code Online (Sandbox Code Playgroud)

我有另一个列表,其中包含文件的子集 - 但它只有文件名; 不是路径.

List<string> excludeList = new List<string>();
excludeList.Add("B.sql");
Run Code Online (Sandbox Code Playgroud)

现在我需要从allFilesWithPathList获取excludeList中不存在的文件.目前,我EXCEPT在创建另一个仅包含文件名的列表后,正在执行以下操作.

List<string> allFileNamesOnlyList = new List<string>();
foreach (string fileNameWithPath in allFilesWithPathList)
{
    //Remove path and get only file name
    int pos = fileNameWithPath.LastIndexOf(@"\") + 1;
    string value = fileNameWithPath.Substring(pos, fileNameWithPath.Length - pos);
    allFileNamesOnlyList.Add(value);
}

//EXCEPT logic
List<string> eligibleListToProcess = allFileNamesOnlyList.Except(excludeList).ToList();
Run Code Online (Sandbox Code Playgroud)

LINQ不引入上述其他列表的情况下,使这种逻辑工作的最佳方法是什么?

注意:我正在使用 .Net 4.5

完整的代码

class Program
{
    static void Main(string[] args)
    {
        List<string> allFilesWithPathList …
Run Code Online (Sandbox Code Playgroud)

c# linq

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