草庐IT

Pull-to-Refresh

全部标签

C# : how to - single instance application that accepts new parameters?

我正在创建一个使用NZB文件下载二进制文件的(C#)程序,我的应用程序在任何时候可能只有一个实例在运行。因此,当用户双击.nzb文件并且我的程序未运行时,它应该启动并处理它(简单,文件注册)。现在,如果我的程序已经在运行,我不想启动第二个实例-我希望已经运行的实例获取指定的文件。可以使用带有.IsSingleInstance技巧的VisualBasicDLL使我的应用程序成为单一实例,但我不想去那里。正确的方法似乎是使用互斥锁来确保我的应用程序是单实例的,但现在我陷入了如何将指定参数(.nzb文件)传递给已经运行的实例的问题。帮助将不胜感激!:-) 最佳答案

c# - 单元测试 Asp.Net WebApi : how to test correct routing of a method with [FromUri] parameters

我想测试这个Controller:[HttpGet]publicIListGetNotificationsByCustomerAndId([FromUri]string[]name,[FromUri]int[]lastNotificationID){return_storage.GetNotifications(name,lastNotificationID,_topX);}特别是,在此方法中,我想测试传入输入以形成请求Url的数组是否与进入routeData.Values的数组相同。如果对于单值参数(不是数组)它有效,但不适用于数组。如果我调试Values,我只会看到controll

c# - Float to Double 转换 - 单元测试中的最佳断言?

给出语句floatf=7.1f;doubled=f;我们可以在关于d的单元测试中断言什么?例如这不起作用:Console.WriteLine(d==7.1d);//falseConsole.WriteLine(d7.1d-float.Epsilon);//false(lessluck)目前我发现的最好的方法是将值转换回来:floatf2=(float)d;Console.WriteLine(f2==f);//true这和粗暴的说法是一样的Console.WriteLine(d==7.1f);//7.1fimplicitlyconvertedtodoubleasabove这个问题不是关于

c# - 懒惰<T> : "The function evaluation requires all threads to run"

我有一个带有一些静态属性的静态类。我在一个静态构造函数中初始化了所有这些,但后来意识到这是浪费,我应该在需要时延迟加载每个属性。所以我转而使用System.Lazytype来完成所有肮脏的工作,并告诉它不要使用它的任何线程安全功能,因为在我的例子中执行总是单线程的。我得到了以下类(class):publicstaticclassQueues{privatestaticreadonlyLazyg_Parser=newLazy(()=>newQueue(Config.ParserQueueName),false);privatestaticreadonlyLazyg_Distributor

C# 重新抛出异常 : how to get the exception stack in the IDE?

这里之前已经讨论过重新抛出异常的正确方法。相反,这个问题是关于如何在使用rethrow时从VisualStudio获得有用的行为。考虑这段代码:staticvoidfoo(){thrownewException("boo!");}staticvoidMain(string[]args){try{foo();}catch(Exceptionx){//dosomestuffthrow;}}出现的异常具有正确的堆栈跟踪,将foo()显示为异常源。但是,GUI调用堆栈窗口只显示Main,而我期望它显示异常的调用堆栈,一直到foo。当没有重新抛出时,我可以使用GUI非常快速地导航调用堆栈,以查看

c# - EF 代码首先是 : How to delete a row from an entity's Collection while following DDD?

场景是这样的:DDD声明您使用存储库获取聚合根,然后使用它来添加/删除它拥有的任何集合。添加很简单,您只需在要添加到的Collection上调用.Add(Itemitem)。保存时会向数据库中添加一个新行。但是,删除是不同的-调用.Remove(Itemitem)不会从数据库中删除项目,它只是删除外键。因此,是的,从技术上讲,它不再是收藏的一部分,但它仍在数据库中。仔细阅读,唯一的解决方案是使用数据上下文将其删除。但是根据DDD,域对象不应该知道数据上下文,因此必须在域外进行删除。解决这个问题的正确方法是什么?或者让数据库中充满孤儿是可以接受的吗(也许运行一个例程来清除它们)?

c# - Linq to Entities 中的动态 where 子句 (OR)

在帖子中here我学习了如何使用Linq的延迟执行来构建动态查询。但查询实际上是使用WHERE条件的AND串联。如何使用OR逻辑实现相同的查询?由于Flags枚举,查询应该搜索Username、WindowsUsername或两者:publicUserGetUser(IdentifierTypetype,stringidentifier){using(varcontext=contextFactory.Invoke()){varquery=fromuincontext.Usersselectu;if(type.HasFlag(IdentifierType.Username))query

c# - 将我自己的方法与 LINQ to Entities 结合使用

我有一个使用LINQ的项目,我想在其中使用我自己的方法。此NoWhiteSpaces方法应返回不含空格的上部字符串。publicstaticclassLittleExtensions{publicstaticstringNoWhiteSpaces(thisStrings){returnRegex.Replace(s,@"\s",string.Empty).ToUpper();}}当我想将此方法与LINQ一起使用时,如下所示:staticvoidGetHaendler(){using(varriaService=newgkmRia()){varhladany="someone";varh

c# - LINQ-to-SQL Table<T>.Attach 有什么作用?

LINQ-to-SQL方法到底是做什么的Table.Attach()和Table.AttachAll()正确使用它们的示例/情况是什么?此外,请查看此相关问题:HowtodetachaLINQ-to-SQLdataobjectfromtheDataContext'strackingmechanism? 最佳答案 它在将数据序列化/反序列化到其他层的多层应用程序中非常有用。简短版:Attach()告诉DataContext该实体不是新实体(对于insert),而是一个更新后的实体,它应该是在数据库中更新。长版:您有一个DataCont

c# - Visual Studio 2008/C# : How to find dead code in a project?

如何在VisualStudio2008C#项目中找到死代码?比如未使用的类、未使用的变量或未使用的资源? 最佳答案 你可以试试FxCop,它以代码分析的名称集成在VisualStudio2008中。您只需右键单击项目文件并选择“运行代码分析”。FxCopisanapplicationthatanalyzesmanagedcodeassemblies(codethattargetsthe.NETFrameworkcommonlanguageruntime)andreportsinformationabouttheassemblies,