为什么RequestAdditionalTime()方法不能在Vista / 7中重启?

我一直在对我用C#.Net 3.5编写的Windows服务进行一些广泛的测试。 我无法让Windows给我足够的时间让我的服务在我重新启动或关闭计算机时正常关闭,即使我正在调用RequestAdditionalTime()方法,它应该更新SCM并保持我的服务运行。 如果我手动停止服务,我的代码可以正常工作。 我主要是在Windows Vista和Windows 7中测试此代码,在决定在Windows XP中测试代码时,一切都运行得很好。 有谁知道为什么这个电话在Vista / 7中不起作用? 我想我需要某种权限来保持系统不会关闭我默认在Xp中但不在Vista / 7中。

我的ASMX代理方法中有哪些额外参数?

如果我将.NET 1.1客户端的Web引用添加到WCF服务,则客户端生成的代理方法包含一个额外的参数,以每个服务方法参数的后缀’Specified’结尾,例如 [OperationContract] string HelloWorld(string foo, int bar); 结果是: Service1.HelloWorld(string foo, bool fooSpecified, int bar, bool barSpecified); 我的服务参数不是可选的,所以客户端的这些额外参数是什么,我怎样才能摆脱它们?

从.NET HashSet中按索引选择元素

目前我正在使用从HashSet派生的自定义类。 在特定条件下选择项目时代码中有一点: var c = clusters.Where(x => x.Label != null && x.Label.Equals(someLabel)); 它工作正常,我得到了这些元素。 但有没有办法可以在集合中接收元素的索引以与ElementAt方法一起使用,而不是整个对象? 看起来或多或少会像这样: var c = select element index in collection under certain condition; int index = c.ElementAt(0); //get first index clusters.ElementAt(index).RunObjectMthod(); 是否手动迭代整个集合更好的方法? 我需要补充说它是一个更大的循环,所以这个Where子句对不同的someLabel字符串执行多次。 编辑 我需要这个吗? clusters是一组文档集合的集合。 文档按主题相似性分组。 因此,算法的最后一步是发现每个群集的标签。 但算法并不完美,有时它会使两个或多个具有相同标签的聚类。 我想要做的只是将这些集群合并为一个集群。

获取“源文件与模块构建时不同。”

我正在尝试调试我收到的ASP.Net Web项目。 我修改了”Apps_LocalResources”文件夹中的一个类。 当我调试并且代码试图进入该类时,我得到了 “源文件与模块构建时不同。” 我重建了解决方案并没有得到任何改变。 我甚至将它发布到不同的位置,bin文件夹中的pdb和dll没有改变,所以我没有复制它们。 想法?

没有goto 编写重试逻辑的更好方法

有没有更好的方法来编写这个代码而不使用goto ? 这看起来很尴尬,但我想不出更好的方法。 我需要能够执行一次重试尝试,但我不想复制任何代码。 public void Write(string body) { bool retry = false; RetryPoint: try { m_Outputfile.Write(body); m_Outputfile.Flush(); } catch (Exception) { if( retry ) throw; // try to re-open the file… m_Outputfile = new StreamWriter(m_Filepath, true); retry = true; goto RetryPoint; } }

正则表达式+删除匹配前的所有文本

我试图找出一种方法来删除正则表达式匹配前字符串中的所有文本。 我用C#编写代码。 例如,如果字符串是“hello,test matching”,并且模式是“test”,我希望最终结果是“test matching”(即在测试之前删除所有内容)。 有什么想法吗? 谢谢! 编辑:在阅读您的回复之后,我可能应该在我的示例中更具体一些(并感谢他们)。 我喜欢前瞻方法,但我简化了我的例子。 为了使事情变得更加困难,通常字符串看起来像: “你好,测试匹配测试一切后” 因此,如果我使用模式“test”,它将捕获第一个。 我的目标是在第二场比赛后替换所有文字。 即:导致“测试一切后”……抱歉。

Visual Studio每次运行时都会构建项目

我在Visual Studio 2010中有一个带有大量项目的.NET解决方案。 直到最近,当我从IDE中运行启动项目时,只有在启动项目或其中一个依赖项目中对代码进行了更改时,才会构建项目。 大约两周前,我注意到每次运行启动项目时,Visual Studio都会构建所有项目,大约需要7分钟。 毋庸置疑,这需要花费大量时间,而且我已尽力在网上寻找解决方案,但尚未找到解决我特定问题的任何解决方案。 还有一些额外的信息 – 在我开始遇到这个问题的同时,同样的问题开始发生在我的团队中的其他人身上。 我们还使用源代码存储库。 由于我们没有更改Visual Studio中的任何设置,我怀疑有人在某些项目的源代码中无意中更改了某些内容,而现在每个项目都需要构建所有项目。 任何建议将不胜感激。

从URL到流的图像

我从url获取图片: BitmapImage image = new BitmapImage(new Uri(article.ImageURL)); NLBI.Thumbnail.Source = image; 这很完美,现在我需要把它放在一个流中,使其成为字节数组。 我这样做: WriteableBitmap wb = new WriteableBitmap(image); MemoryStream ms = new MemoryStream(); wb.SaveJpeg(ms, image.PixelWidth, image.PixelHeight, 0, 100); byte[] imageBytes = ms.ToArray(); 并且代码因NullReference而失败,如何解决?

存储树结构的集合是什么?

我想在组合中存储组织结构图。 我认为树数据结构最适合我的需要,因为我需要在一个节点上添加多个节点。 如果我理解正确, LinkedList只提供一个节点添加到另一个节点。 我查看了C5 treeset集合,但似乎没有Add()方法向一个节点添加2个以上的节点。 我还从Windows窗体库中查看了Treeview类,但我不想将Windows窗体dll添加到我的项目中,因为我正在构建服务层应用程序。 (还是没事?) 我不想写自己的树集合类,如果已经有第三方提供的那个? 有什么建议吗? 谢谢

如何删除ListViewItem上的选择边框

我正在使用SetWindowTheme和SendMessage使.net listview看起来像vista样式列表视图,但.net控件仍然在所选项目周围有一个虚线选择边框: 资源管理器列表视图中的选定项目周围没有该边框。 我该如何删除它? Windows资源管理器: 编辑:解决方案: public static int MAKELONG(int wLow, int wHigh) { int low = (int)LOWORD(wLow); short high = LOWORD(wHigh); int product = 0x00010000 * (int)high; int makeLong = (int)(low | product); return makeLong; } SendMessage(olv.Handle, WM_CHANGEUISTATE, Program.MAKELONG(UIS_SET, UISF_HIDEFOCUS), 0);