Tag: c#

在C#.NET中启动和停止进程

我正在尝试编写一个简单的程序,它有两个方法,一个启动一个进程,一个启动同一个进程。 如: public Process StartProc(string procname) { Process proc = new Process(); proc.StartInfo.FileName = procname; proc.Start(); return proc; } public void StopProc(Process proc) { proc.Close(); } 有可能这样做吗?

如何在C#中进行unit testing中的MapPath

我想在unit testing中加载外部XML文件,以测试该XML上的一些处理代码。 如何获取文件的路径? 通常在网络应用程序中我会这样做: XDocument.Load(Server.MapPath(“/myFile.xml”)); 但显然在我的unit testing中我没有引用Server或HttpContext,所以如何映射路径以便我不必指定完整路径? 更新: 我只想说明我实际测试的代码是针对XML解析器类的,类似于: public static class CustomerXmlParser { public static Customer ParseXml(XDocument xdoc) { //… } } 所以为了测试这个,我需要解析一个有效的XDocument。 正在测试的方法不会访问文件系统本身。 我可以直接在测试代码中从String创建XDocument,但我认为从文件中加载它会更容易。

asp.net/C#中的静态变量

我在我的Web应用程序项目中使用了大量的静态变量。 现在我从一些文章中读到它是整个项目的全局变量,静态变量中的数据可以被其他用户共享或覆盖(我的意思是它不是用户特定的或特定于会话的)。 那么通常的编程习惯是不在正常的Web应用程序开发中使用静态变量吗? 是否完全不使用静态变量,就像GOTO语句/关键字一样,这意味着使用它们有很多限制,最好不要使用它们? 那么在什么情况下我们使用静态关键字? 那么我有这个要求,特定的变量必须在特定的webform.aspx.cs中初始化一次,并且范围必须仅限于那个特定的.aspx.cs和已经登录的特定用户? 我如何满足这一要求? 如果可能,任何人都可以用代码说明这一点吗

ServiceStack.Net的多个可选参数

我正在尝试使用ServiceStack.Net实现具有多个可选参数的服务 目前我的路线看起来像这样 Routes.Add(“/save/{Year}/{Week}”); 我想像这样支持uris: /保存/ 2010/12 /星期一/ 4 /日/ 6 /日/ 7 即星期一= 4,星期二= 6,星期三= 7 但是我希望能够忽略几天,即调用服务的人可以决定是否要保存每天的每个值… 即像这样缺少参数值 ?星期一= 4&周三= 7&周五= 6 当然,一种解决方案是使用以下路由,当我不想保存值时只传递0。 Routes.Add(“/save/{Year}/{Week}/{Monday}/{Tuesday}}/{Weds}/{Thurs}/{Fri}/{Sat}/{Sun}”); 但是…..有没有更好的方法来实现这个function?

通过基类创建派生类的实例,无需硬编码

我的问题如下: 我有一个需要抽象的基类。 它有几个派生类,每个派生类都有自己的特殊属性,这些属性包含在Properties成员中。 我需要能够创建这些派生类之一的新实例,以便所有成员都是等效的,但修改新实例不会修改原始实例。 最后,我想在不必在基类的每个派生类型中进行硬编码的情况下执行此操作。 (诚​​然,这将是最简单的解决方案,但这不是重点) 所有派生类都满足与基类的“is-a”关系。 这是代码: public abstract class BaseClass { //Default properties here int x, y, z, …; //Custom made class to hold custom properties protected Attributes Properties; public BaseClass createNewInstance() { return createNewInstanceStep1(); } //Each derived class implements their own version of this, //to handle copying any custom members contained in […]

OpenXML向现有Excel文件添加新行

我有很多XLSX文件,我需要在文件中的最后一行后添加一个新行。 我正在使用OpenXML,到目前为止我知道如何打开/创建电子表格,但我在现有文件中添加新行的搜索没有返回任何内容。 有任何想法吗 ?

从Process.TotalProcessorTime计算进程cpu使用情况

我一直试图摆脱使用PerformanceCounter类来监视进程的CPU使用情况,因为当进程计数变得非常高时(监视大量进程时)它似乎需要相当数量的CPU。 我的第一种方法是使用Win32_PerfFormattedData_PerfOS_Processor类和PercentProcessorTime属性来获取WMI路由,但是在尝试计算多个核心的CPU使用率时似乎存在问题(它返回的最大值是100%,因此无法根据它进行划分关于CPU核心数,导致结果不准确)。 所以最后我决定使用Process的类TotalProcessorTime属性。 遗憾的是,我不确定如何根据该值计算Process使用的总CPU使用百分比。 我知道我应该从之前的PercentProcessorTime值中减去当前的PercentProcessorTime值,以获得处理器在特定时间限制内花费了多少时间,但我不确定如何从那里继续。 提前致谢。

我什么时候可以处理IDisposable WPF控件,例如WindowsFormsHost?

WPF控件WindowsFormsHostinheritance自IDisposable。 如果我有一个包含上述某些控件的复杂WPF可视树,我可以使用哪些事件或方法在关机期间调用IDispose?

带有通用代码隐藏的WPF UserControl

我有这个代码: CustomUserControl.xaml.cs namespace MyProject { public partial class CustomUserControl : UserControl { … } } 而这个xaml: CustomUserControl.xaml 它不起作用,因为x:Class =“MyProject.CustomUserControl”与代码隐藏的generics类定义不匹配。 有没有办法让这项工作?

将应用程序从.net 4.0降级到3.5

我一直在VS2010中开发一个应用程序,并将其编译为.NET 4.0作为目标框架。 将库集成到我的应用程序后,我在尝试编译时收到以下错误消息: 混合模式程序集是针对运行时的版本“v1.1.4322”构建的,如果没有其他配置信息,则无法在4.0运行时加载。 该库在.NET 3.5下工作正常,但是当我将目标框架更改为.NET 3.5时,我的所有.resx文件都出现以下错误: 错误1未将对象引用设置为对象的实例。 我尝试了ctrl-h Version = 4.0.0.0到Version = 3.5.0.0,但这似乎不起作用。 有什么我可以做的其他创建一个新的应用程序?