Tag: c#

如何删除其他进程正在使用的文件?

当我尝试删除文件时发生以下exception: 该进程无法访问该文件,因为它正由另一个进程使用。 我的代码看起来像: string[] files = Directory.GetFiles(@”C:\SEDocumentConverter\SOURCE”); foreach (string file in files) { File.Delete(file); } 我怎么解决这个问题?

在Silverlight的扩展方法中使用reflection进行深层复制?

所以我试图找到一个通用的扩展方法,它使用reflection创建一个对象的深层副本,可以在Silverlight中使用。 使用序列化的深层复制在Silverlight中并不是那么好,因为它以部分信任方式运行并且BinaryFormatter不存在。 我也知道,reflection会比克隆序列化更快。 有一个方法可以复制公共,私有和受保护的字段,并且是递归的,这样它就可以复制对象中的对象,并且还可以处理集合,数组等。 我在线搜索,只能使用reflection找到浅拷贝实现。 我不明白为什么,因为你可以使用MemberwiseClone,所以对我来说,这些实现是没用的。 谢谢。

如何最小化/最大化打开的应用程序

我有打开的应用程序列表。 要获得此列表,我使用了以下代码 internal static class NativeMethods { public static readonly Int32 GWL_STYLE = -16; public static readonly UInt64 WS_VISIBLE = 0x10000000L; public static readonly UInt64 WS_BORDER = 0x00800000L; public static readonly UInt64 DESIRED_WS = WS_BORDER | WS_VISIBLE; public delegate Boolean EnumWindowsCallback(IntPtr hwnd, Int32 lParam); public static List GetAllWindows() { List windows = new List(); StringBuilder […]

如何在c#中创建可点击的不规则形状区域

我有一个像心脏或任何随机形状的不规则形状的图片。 我可以在视觉上使它透明,但我需要让它只在形状区域上可点击。 我听说我应该使用“Region”,但我无法弄清楚如何。 我试图搜索所有非空,透明或空的像素并使用它们创建一个点数组,但我无法创建/重塑当前控制区域。 我正在尝试制作一个自定义控件,你可以选择一个按钮或图片,它们是不规则形状并且彼此靠近。 这是我正在处理的事情: 正如您在图片中看到的,有8个不同的部分(假设右侧和左侧组合)。 正如您所看到的,它们彼此接近,其中一些甚至适合其他人之间的空白区域。 我的目标是,例如,如果我点击Pectorals(图中的红色区域),它将变为彩色版本,并运行一堆其他代码。 问题是,默认情况下,当我们使用PictureBox添加任何Picture时,它将从该边界开始围绕该图片创建一个Rectangle 。 因此,如果我将两张图片(如图所示)放在一起,则一个空区域会阻止我点击另一张图片。 由于这个问题,它也引发了错误对象的ClickEvent 。 我正在尝试设置“提升事件区域”,我假设我们将Graphic Region称为图像存在的位置。 我可以通过循环收集像素的位置,该循环确定该图片的哪个坐标具有“颜色”(意味着它是图片的一部分,我想要点击的区域)但是我不能用该数据限制该区域。 我想要实现的一个例子: https : //www.youtube.com/watch?v = K_JzL4kzCoE 做这个的最好方式是什么?

温莎城堡奇怪的行为与财产注入和工厂方法

我在ASP.NET MVC项目中使用Castle Windsor 2.5.1并使用属性注入来创建一个我期望在基本控制器类上始终可用的对象。 我正在使用工厂来创建这个对象,但是如果构造函数中有错误,我根本不会收到来自Windsor的警告,它只返回我的对象​​但没有注入属性。 这是预期的行为,如果是这样,当工厂无法返回任何内容时,如何引发错误? 这是一个例子 public class MyDependency : IMyDependency { public MyDependency(bool error) { if (error) throw new Exception(“I error on creation”); } } public interface IMyDependency { } public class MyConsumer { public IMyDependency MyDependency { get; set; } } [TestFixture] public class ProgramTest { [Test] public void CreateWithoutError() //Works as […]

Yahoo Mail的C#SMTP电子邮件发送代码失败但对其他服务器工作正常,有人可以帮忙吗?

我正在使用此代码通过yahoo SMTP服务器发送SMTP电子邮件,它是我正在编写的个人项目。 using System.Net.Mail; using System.Net; SmtpClient theClient = new SmtpClient(“smtp.mail.yahoo.com”, 465); theClient.UseDefaultCredentials = false; theClient.Credentials = new NetworkCredential(“username”, “password”); theClient.EnableSsl = true; MailMessage theMessage = new MailMessage(“username@yahoo.com”, “to.someone@gmail.com”); theMessage.Subject = “Dave test from C# subject”; theMessage.Body = “Dave test from C# body”; theClient.Send(theMessage); 它是用于发送SMTP电子邮件的非常标准的代码,但是…服务器似乎抛出错误。 它强行终止连接。 如果我使用其他SMTP服务器(如Gmail,Windows Live或其他各种ISP Smtp服务器),则不会发生这种情况。 这是exception和堆栈跟踪: System.IO.IOException: Unable to read data […]

绘制2D热图

我有一张图表,我想要绘制热图; 我所拥有的唯一数据是湿度和温度,它代表图表中的一个点。 如何在c#中获取图表上的矩形热图? 我想要的是类似于下图: 我真正想要的是图表中的一个矩形区域,它根据我从点列表中得到的点以不同的颜色绘制,并在图表中形成彩色部分。

C# – 将XML命名空间(xmlns)标记添加到文档

我正在使用C#中的System.XML创建XML文档。 我差不多完成了,但我需要在文档的顶部添加一些类似的内容: 我需要在下面的地方添加: 我使用以下代码创建它: XmlWriterSettings settings = new XmlWriterSettings { Encoding = Encoding.UTF8, Indent = true }; 在此之后,我继续创建我的XML文档,现在已经完成,但我需要在中间添加它。 谢谢 约翰

为什么PLINQ只使用两个线程?

说我有一个IO绑定任务。 我使用WithDegreeOfParallelism = 10和WithExecution = ForceParallelism模式,但查询仍然只使用两个线程。 为什么? 我知道PLINQ通常会选择一个与我的核心数相等的并行度,但为什么它忽略了我对更高并行性的特定要求呢? static void Main(string[] args) { TestParallel(0.UpTo(8)); } private static void TestParallel(IEnumerable input) { var timer = new Stopwatch(); timer.Start(); var size = input.Count(); if (input.AsParallel(). WithDegreeOfParallelism(10). WithExecutionMode(ParallelExecutionMode.ForceParallelism). Where(IsOdd).Count() != size / 2) throw new Exception(“Failed to count the odds”); timer.Stop(); Console.WriteLine(“Tested ” + size + ” numbers […]

C#DataTable到Json?

我想将DataTable作为Json格式在图表上显示。 public JsonResult GetDataTable() { DataTable dt = new DataTable(); dt.Columns.Add(“Jan”); dt.Columns.Add(“Feb”); dt.Columns.Add(“Mar”); dt.Columns.Add(“Apr”); for (int i = 0; i < 10; i++) { dt.Rows.Add(i * 5, i * 10, i * 15, i * 11); } // JsonDataTable = dt to Json return new JsonResult { Data = new { success = true, chartData […]