Tag: c# 4.0

Covariance / Contravariance不应该在C#4.5中允许这样吗?

private Dictionary<Type, List> dataStore = new Dictionary<Type, List>(); public void Insert(T dto) where T : IDataTransferObject { if (!dataStore.ContainsKey(typeof(T))) { dataStore.Add(typeof(T), new List()); } dataStore[typeof(T)].Add(dto); } 上面的代码给出了dataStore.Add行的编译错误,因为它不喜欢我尝试将List分配给List 。 由于我的方法将T限制为只有IDataTransferObject,因此.Net 4中的协方差/反函数不应该允许这个代码吗? 我知道我可以改变它来做新的List它会工作,但我很好奇为什么原始代码不起作用。

可以使用任务并行库一起运行长时间运行的方法和“工作…”对话框,以允许长任务写入BindingList吗?

我有一个WPF(C#和.NET 4)应用程序,其中有一个长时间运行的任务阻止了UI,给人的印象是它已挂起。 我决定使用BackgroundWorker线程将这个长时间运行的任务放到一个单独的线程中,并在一个单独的弹出窗口中显示一个BusyIndicator (下面名为WorkingDialog)。 这很好用,直到长时间运行的任务写入BindingList(绑定到UI上的网格),我得到以下exception: 这种类型的CollectionView不支持从与Dispatcher线程不同的线程更改其SourceCollection 这是(业务层代码的一个非常精简的版本)… public class CustomMessage { public DateTime TimeStamp { get; private set; } public string Message { get; private set; } public CustomMessage(string message) { Message = message; TimeStamp = DateTime.Now; } } public class MyRandomBusinessClass { public BindingList LoggingList { get; private set; } public MyRandomBusinessClass() { LoggingList […]

如何检测图像中的黑色子弹?

鉴于以下图像,我如何使用C#,EmguCV或AForge检测此图像中的黑色子弹(90子弹)? 我尝试使用GetPixel(x,y)方法,但它只检查逐个像素,它非常慢,我需要检测项目符号而不是像素。

以编程方式在WPF中创建图像按钮

我想创建一个Windows工具栏(类似于RocketDock),它可以从序列化类中动态创建按钮,但我无法弄清楚如何动态设置图像。 另外,如何将图像序列化(我想用存储类序列化图像,而不是每次都从原始的png文件位置加载它)? 我找到了以下代码来创建依赖项属性 public class ImageButton { #region Image dependency property public static readonly DependencyProperty ImageProperty; public static ImageSource GetImage(DependencyObject obj) { return (ImageSource)obj.GetValue(ImageProperty); } public static void SetImage(DependencyObject obj, ImageSource value) { obj.SetValue(ImageProperty, value); } #endregion static ImageButton() { var metadata = new FrameworkPropertyMetadata((ImageSource)null); ImageProperty = DependencyProperty.RegisterAttached(“Image”, typeof(ImageSource), typeof(ImageButton), metadata); } } 我创建了一个按钮样式来inheritance以设置图像 但在创建按钮后,我无法弄清楚如何从代码中设置图像 […]

使用.AsParallel()。ForAll或Parallel.ForEach性能问题并行化任务

我有一个网站列表和一个代理服务器列表。 我有这个动作 Action action = (string url) => { var proxy = ProxyHandler.GetProxy(); HtmlDocument html = null; while (html == null) { try { html = htmlDocumentLoader.LoadDocument(url, proxy.Address); // Various db manipulation code ProxyHandler.ReleaseProxy(proxy); } catch (Exception exc) { Console.WriteLine(“{0} proxies remain”, ProxyHandler.ListSize()); // Various db manipulation code proxy = ProxyHandler.GetProxy(); } } }; 我打电话给谁 […]

如何从网页上获取文字?

我想从C#中的网页上获取文本。 我不想获取HTML,我想要从网页上删除真实文本。 就像我输入“ cake ”一样,我想要蛋糕,而不是标签。

如何在C#WinForms中的Label上写二次方程?

我们正在制作统计软件。 无处不在我们需要放置公式,如ax2+bx+c如何使ax2表示x平方2.我想在x的上侧显示2。 与πc相同我想在后缀处显示c。

将属性传递给C#中的方法

我需要传递某些类型的属性选择(每次一种类型),假设这是我的类型: public class Product { [PrimaryKey] public long Id { get; set; } [DisplayName(“Name”)] public string Title { get; set; } [Foreignkey(Schema = “Products”, Table = “MajorCategory”, Column = “Id”)] [DisplayName(“MCat”)] public string MajorCategory { get; set; } [Foreignkey(Schema = “Products”, Table = “Category”, Column = “Id”)] [DisplayName(“Cat”)] public string Category { get; set; } […]

有没有办法知道byte 是否已被gzipstream压缩?

有没有办法知道字节[]是否已被GzipStream .net类压缩(或不压缩)? 编辑:只想知道byte []数组是否已被压缩(因为我将始终使用GzipStream进行压缩和解压缩)

具有entity framework和编辑多个对象的MVC 3导致“参照完整性约束违反”

我有一个MVC 3项目,我正在使用Entity Framework作为我的模型。 我有一个对象“雇主”,其中包含“地址”和“邮政地址”,我想同时显示(查看)和更新(编辑)(即在页面上显示雇主详细信息和地址详细信息同时更新) ) 我的观点似乎很好: var employer = (from e in entities.Employers.Include(“Address”).Include(“PostalAddress”) where e.EmployerNumber == employerNumber select e).First(); return View(employer); 我的编辑显示正常(即所有文本框都填充了雇主和地址详细信息) [HttpPost] public ActionResult Edit(Employer employer) { if (ModelState.IsValid) { entities.Employers.Attach(employer); entities.ObjectStateManager.ChangeObjectState(employer, EntityState.Modified); entities.SaveChanges(); return RedirectToAction(“Index”); } return View(employer); } 但是当我去保存时,我在entities.Employers.Attach(雇主)行上得到以下exception: 发生了引用完整性约束违规:定义引用约束的属性值在关系中的主体和从属对象之间不一致。 当我查看它试图附加的雇主对象时,似乎已经“丢失”了它的Address和PostalAddress项目。 这是我的第一个MVC 3项目,所以任何帮助将不胜感激。 编辑页面视图如下所示 @model MyProject.BusinessObjects.Employer @{ ViewBag.Title = “Edit Employer Details”; […]