草庐IT

c# - 同步捕获进程输出(即 "when it happens")

我正在尝试启动一个流程并捕获输出,已经取得了很大进展,但还不是我想要的解决方案。具体来说,我正在尝试通过我正在编写的一个小型实用程序重置我的开发机器上的IIS。通过试验,我得出的结论是,执行此操作的安全方法是在子进程中运行iisreset.exe。如果您在命令提示符下运行iisreset.exe,您会在此过程中获得反馈。运行iisreset需要几秒钟,并生成几行反馈,中间有停顿。我想捕获此反馈并将其呈现在我的Windows窗体应用程序中(在ListBox中),我已经成功了。我仍然担心的是,在子进程完成之前我不会得到它。我想在创建行时立即逐行获取子进程的输出。我试着做我的家庭作业,阅读/

C# Settings.Default.Save() 不保存?

这个问题在这里已经有了答案:Whyaremyapplicationsettingsnotgettingpersisted?(4个答案)关闭5年前。这个错误很不寻常。基本上我的代码将更改Settings.Default.Example然后保存并重新启动程序。然后当它加载时,它会显示一个消息框。然而奇怪的是,当表单加载时它显示一个空值。这是我的代码:Main.csprivatevoidButton1_Click(objectsender,EventArgse){Settings.Default.Example="Somevalue";//SetsavaluetothesettingsSet

c# - GDI+ 中的 System.Drawing.Image.Save 发生一般性错误

异常:AgenericerroroccurredinGDI+.atSystem.Drawing.Image.Save(Stringfilename,ImageCodecInfoencoder,EncoderParametersencoderParams)atSystem.Drawing.Image.Save(Stringfilename,ImageFormatformat)atSystem.Drawing.Image.Save(Stringfilename)代码:byte[]bitmapData=newbyte[imageText.Length];MemoryStreamstreamB

c# - 无法转换类型 : why is it necesssary to cast twice?

鉴于这个高度简化的例子:abstractclassAnimal{}classDog:Animal{publicvoidBark(){}}classCat:Animal{publicvoidMew(){}}classSoundRecorderwhereT:Animal{privatereadonlyT_animal;publicSoundRecorder(Tanimal){_animal=animal;}publicvoidRecordSound(stringfact){if(this._animalisDog){((Dog)this._animal).Bark();//Compiler

c# - .NET : Unable to cast object to interface it implements

我有一个类(TabControlH60),它既继承自基类(UserControl)又实现了一个接口(interface)(IFrameworkClient)。我使用.NETActivator类实例化该对象。使用返回的实例,我可以转换为UserControl基类,但不能转换为接口(interface)。我得到的异常在代码片段下方。如何转换到界面?objectobj=Activator.CreateInstance(objType);Type[]interfaces=obj.GetType().GetInterfaces();//containsIFrameworkClientm_Clie

c# - 系统.IO.FileNotFoundException : Could not load file or assembly 'X' or one of its dependencies when deploying the application

我在部署应用程序时遇到了一个奇怪的问题,该应用程序引用了一个用托管C++编写的程序集。我创建了一个程序集X,对其进行编译并在名为Starter的exe文件中引用它。Starter.exe在本地机器上正常启动。但是,当我将启动器调试文件夹的所有内容复制到虚拟机器并尝试在那里启动它时,它崩溃并出现以下异常:UnhandledException:System.IO.FileNotFoundException:Couldnotloadfileorassembly'X'oroneofitsdependencies.Thespecifiedmodulecouldnotbefound.这对我来说没有

c# - ConfigurationManager 能否保留对 Save() 的 XML 注释?

我编写了一个小实用程序,允许我为另一个应用程序的App.config文件更改一个简单的AppSetting,然后保存更改://saveabackupcopyfirst.varcfg=ConfigurationManager.OpenExeConfiguration(pathToExeFile);cfg.SaveAs(cfg.FilePath+"."+DateTime.Now.ToFileTime()+".bak");//reopentheoriginalconfigagainandupdateit.cfg=ConfigurationManager.OpenExeConfiguratio

c# - 使用 SaveFileDialog 后 GDI+ 的 Bitmap.Save() 发生一般错误

我在usingblock中使用了以下代码块和更多代码:using(System.Drawing.BitmaptempImg=(System.Drawing.Bitmap)tempObj.GetData(System.Windows.Forms.DataFormats.Bitmap)){//...tempImg.Save("..\\..\\testdata\\tempImg.bmp",ImageFormat.Bmp);//...}但我仍然得到错误:AGenericErroroccuredatGDI+只有在我做了一些与usingblock中的代码无关的操作之后。在其他时候,这很有效。tem

c# - 将 It.IsAny<int>() 和 It.IsAny<int>() 的值传递给方法设置有什么区别

我正在使用Moq,并希望创建构建器类来创建具有预设合理默认值的模拟,这些默认值可以在测试设置期间根据需要覆盖。我采用的方法使用扩展方法,我在其中传递输入参数值和预期输出。这样做时,我看到在我看来语义等效的代码中有不同的行为:直接在设置中传递It.IsAny()与在设置中间接传递It.IsAny()的值。示例:publicinterfaceIFoo{boolBar(intvalue);boolBar2(intvalue);}publicclassFoo:IFoo{publicboolBar(intvalue){returnfalse;}publicboolBar2(intvalue){r

c# - 使用 Moq.It.IsAny 测试以某物开头的字符串

是否可以使用Moq来表示一个方法接受以“ABC”开头的字符串。举个例子:logger.Verify(x=>x.WriteData(Moq.It.IsAny().StartsWith("ABC")),Times.Exactly(3));那不会编译,但希望它能说明我的观点 最佳答案 尝试:logger.Verify(x=>x.WriteData(Moq.It.Is(str=>str.StartsWith("ABC"))),Times.Exactly(3));你可以看到It.Is的另一个例子://matchingFunc,lazyeval