草庐IT

Do-While

全部标签

c# - 温莎城堡 : How do I inject all implementations of interface into a ctor?

我编写了一个由多个类实现的接口(interface)。我想编写一个服务类,它将所有已注册的实现注入(inject)到它的构造函数中。我能想到的唯一解决方案是在ctor中调用服务定位器并要求它Resolve()所有实现。理想情况下我想要这样的东西-interfaceIVehicle{voidStart();}classCar:IVehicle{publicvoidStart(){Console.WriteLine("Carstarted.");}}classTruck:IVehicle{publicvoidStart(){Console.WriteLine("Truckstarted."

c# - 是 Thread.Sleep(Timeout.Infinite);比 while(true){} 更有效?

我有一个控制台应用程序,我想在监听事件的同时一直保持打开状态。我已经测试了Thread.Sleep(Timeout.Infinite);和while(true){}并且都允许在保持控制台应用程序打开的同时引发事件。有没有我应该优先使用的?如果线程正在休眠,是否有任何我不应该做的事情,例如修改类范围内声明的静态集合? 最佳答案 我建议使用ManualResetEvent(或其他WaitHandle),并调用ManualResetEvent.WaitOne.这将具有与永远sleep类似的效果,除了它为您提供了一种干净的方式,可以在需要时

c# - 如何防止 EF "The context cannot be used while the model is being created"错误?

查看我的Elmah错误日志,我看到一些来自EntityFramework的InvalidOperationException处理:Thecontextcannotbeusedwhilethemodelisbeingcreated.这是来自Nuget的最新EFCodeFirst库。我能够在网上找到的唯一信息是它是由将数据上下文作为单例引起的,这肯定不是我的情况。在我的Windsor安装程序中,我的EF工作单元结构正在注册:container.Register(Component.For().ImplementedBy().LifeStyle.PerWebRequest);我能够通过在VS

c# - .NET : How do you get the Type of a null object?

我有一个带有out参数的方法试图进行类型转换。基本上:publicvoidGetParameterValue(outobjectdestination){objectparamVal="Iwanttoreturnthis.couldbeanytype,notjuststring.";destination=null;//defaultoutparamtonulldestination=Convert.ChangeType(paramVal,destination.GetType());}问题是通常有人会这样调用它:stringoutput;GetParameterValue(outpu

c# - "Context cannot be used while the model is being created"异常与 ASP.NET 标识

为什么当我们调用AccountApiController.Register()方法时会发生这种情况?什么试图使用上下文?什么试图创建上下文?我们如何避免这种情况?我们如何调试它?"Message":"Anerrorhasoccurred.","ExceptionMessage":"Thecontextcannotbeusedwhilethemodelisbeingcreated.ThisexceptionmaybethrownifthecontextisusedinsidetheOnModelCreatingmethodorifthesamecontextinstanceisacces

c# - 重启后出现"A timeout was reached while waiting for the service to connect"错误

我有一个自定义编写的Windows服务,我在许多Hyper-V虚拟机上运行。作为正在运行的一些自动化测试的一部分,虚拟机每小时会重启几次。该服务设置为自动启动,几乎所有时间都可以正常启动。但是,可能有5%的时间,由于我无法识别任何模式,服务无法启动。当它失败时,我在事件查看器中收到一条错误消息Atimeoutwasreached(30000milliseconds)whilewaitingfortheMyServiceNameservicetoconnect.遇到这种情况,我可以手动启动服务,或者重新启动,服务就可以正常启动了。我想不通的是,我的代码中似乎没有出现30秒超时。我的服务类

c# - 跳出包含 switch 语句的 while 循环

我无法弄清楚如何跳出包含switch语句的循环。break从switch中跳出,而不是从循环中跳出。对此可能有更优雅的解决方案。我已经实现了一个标志,开始时为true,然后设置为false并结束循环。你能提供更好的解决方案吗?背景:此代码用于条码工作流系统。我们有内置条形码扫描仪的PocketPC。此代码用于其中一项功能。它在整个例程中提示用户输入不同的数据。这件作品允许他们滚动浏览一些库存记录,在PocketPC终端(分页结果)上显示该信息,并允许他们输入“D”表示完成,输入“Q”表示退出。这是当前需要改进的C#示例:do{switch(MLTWatcherTCPIP.Get().T

c# - .net 4.0 中不存在 HttpClient : what can I do?

好的,我编辑了我的代码,我没有收到错误,但是messageBox.Show没有返回任何空框。也许我需要在引用字符串中添加一些东西?我不明白什么是推荐人,我应该放在那里。我已经在我的代码中使用了一把key。key是一个长字符串,我在我的代码中使用它,但我不与引荐来源网址一起使用。为什么它不翻译“hi”这个词?usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;

c# - 在嵌套的 while 循环中继续

在此代码示例中,是否有任何方法可以从catchblock继续外循环?while{//outerloopwhile{//innerlooptry{throw;}catch{//howdoIcontinueontheouterloopfromhere?continue;}}} 最佳答案 更新:这个问题是myarticleonthissubject.的灵感来源感谢您提出很好的问题!"continue"和"break"只不过是"goto"的令人愉快的语法。显然,通过给它们起可爱的名字并将它们的用法限制在特定的控制结构中,它们不再引起“所有g

C# 列表<接口(interface)> : why you cannot do `List<IFoo> foo = new List<Bar>();`

如果您有一个接口(interface)IFoo和一个类Bar:IFoo,为什么可以执行以下操作:Listfoo=newList();foo.Add(newBar());但是你不能这样做:Listfoo=newList(); 最佳答案 随便看一眼,这似乎应该(就像啤酒应该是免费的一样)有效。然而,快速的健全性检查向我们展示了为什么它不能。请记住,以下代码不会编译。它旨在说明为什么不允许这样做,即使它看起来在某一点之前都没有问题。publicinterfaceIFoo{}publicclassBar:IFoo{}publicclassZ