Tag: .net 4.0

从PictureBox解锁图像

我目前正在开发一个应用程序,以帮助在我的工作中扫描和显示图像。 我的应用程序是使用多种forms构建的,这里最重要的forms是我的mainForm用于显示当前扫描的统计信息和具有不同function的menustrip。 我还有带有PictureBox ImageViewerForm ,它在辅助监视器上显示以查看当前扫描的图像。 我正在使用Timer来轮询扫描图像的文件夹。 扫描新图像并解锁图像后,我会将其绘制到FileStream并在PictureBox显示,如下所示: public static void SetPicture(string filename, PictureBox pb) { try { Image currentImage; //currentImage = ImageFast.FromFile(filename); using (FileStream fsImage = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { currentImage = ScaleImage(Image.FromStream(fsImage), new Size(pb.Width, pb.Height)); if (pb.InvokeRequired) { pb.Invoke(new MethodInvoker( delegate() { pb.Image = currentImage; })); } else { pb.Image = currentImage; […]

查询FirstOrDefault的动态对象列表

以下代码将返回Enumerable动态对象。 protected override dynamic Get(int id) { Func check = x => x.ID == id; return Enumerable.Where(this.Get(), check); } 如何选择FirstOrDefault以使它是单个对象而不是Enumerable? 与此答案类似,但只想要SingleOrDefault。

Visual Studio IDE中自动生成存根

今天我的一位同事在视觉工作室向我展示了这个技巧。 他两次输入prop和击中tab 这使得visual studio自动将其扩展到属性。 毫无疑问,它是一个非常酷的function。 但这个伎俩叫什么? 是否有任何技巧我可以输入method以便IDE为我生成方法存根? 谢谢。

.NET 4.0中.NET 4.5的Task.FromResult()等效

我无法找到有关将我的代码从.NET 4.5重定向到4.0的信息。 我必须在Windows XP上安装此应用程序。 我在.NET 4.5中的代码 public async Task ImportFile(string fileToImport) { … return await Task.FromResult(Sheet1) } 在.NET 4.0方法中,FromResult不存在。 有人知道它应该在.NET 4.0中看起来怎么样?

在LINQ结果上将IEnumberable 转换为List ,导致巨大的性能损失

在LINQ结果上你喜欢这样: var result = from x in Items select x; List list = result.ToList(); 但是, ToList真的很慢,是否会使列表变得可变,因此转换速度很慢? 在大多数情况下,我可以设法让我的IEnumerable或Paralell.DistinctQuery但现在我想将项目绑定到DataGridView,因此我需要作为其他东西而不是IEnumerable ,关于如何获得ToList或任何性能的建议替换? 在IEnumerable中的10个百万记录中, .ToList大约需要6秒钟。

渲染控件会在.Net 4中生成安全性exception

我遇到的问题是在.NET 2.0中运行良好但在.Net 4下出现此错误的代码。 构建(Web):覆盖成员时违反了inheritance安全规则:’Controls.RelatedPosts.RenderControl(System.Web.UI.HtmlTextWriter)’。 覆盖方法的安全性可访问性必须与被覆盖的方法的安全性可访问性相匹配。 这是在DotNetBlogEngine中。 .NET 4.0似乎不喜欢代码中的其他一些安全需求。 我按照我在博客(和这里)找到的一些建议,并摆脱了所有其他错误。 但这个仍然让我望而却步。 主BlogEngine核心dll不再针对安全性需求而设置,也是针对.NET 4.0编译的。 此错误在网站端尝试使用dll 。 有些控件使用HtmlTextWriter调用RenderControl方法。 显然,文本编写器现在设置了一些软安全属性。 每个控件都实现了一个自定义接口( public interface ICustomFilter ),没有安全权限或要求。 该站点在我的本地开发机器上运行完全信任。 更新: 我已经尝试了.NET 4中安全命名空间下的各种设置。 我知道这是一个代码访问安全性更改,但我不明白它背后的原因(或错误消息)。

传递运行时类型时无法解决符号exception

我有一个JSON反序列化器(如下所示),当我用一种已知的类型调用它时它工作得非常好。 public static T Deserialize(this object obj) { var javaScriptSerializer = new JavaScriptSerializer(); return (obj != null) ? javaScriptSerializer.Deserialize(obj.ToString()) : default(T); } 所以这个电话会起作用: var newExampleTypeX = exampleJsonString.Deserialize(); 但是,我要做的是传入一个在运行时设置的类型,并使用它代替“ExampleTypeX”。 当我这样做时,我得到以下编译错误: Cannot resolve symbol ‘someType’ 所以someType的声明看起来像这样(这是一个简化版本): var someType = typeof(ExampleTypeX); var newExampleTypeX = message.Deserialize(); 我应该以某种方式改变我的Deserialize扩展方法,还是改变我传递运行时类型的方式? 如果是,那我该如何实现呢?

当InstanceContextMode设置为PerSession时,如何为所有客户端运行一次WCF服务构造函数?

当ServiceBehaviorAttribute.InstanceContextMode设置为PerSession如何仅在WCF服务的构造函数中运行一次代码? [ServiceBehavior( InstanceContextMode = InstanceContextMode.PerSession, ConcurrencyMode = ConcurrencyMode.Single)] public class SomeService : ISomeService { public SomeService() { this.RunThisOnceForAllClients(); } private void RunThisOnceForAllClients() { } } 或者,如何在WCF服务运行后自动运行方法,但是对于所有客户端调用它只会运行一次 ? 请帮忙。 提前致谢。 我使用托管Windows服务部署我的WCF 服务 。 我的代码是在C#中。 框架在.NET 4中。项目是在Visual Stuido 2010 Professional中构建的。 该服务由Windows窗体应用程序使用。 如果你想知道为什么我需要像这样做,我需要执行一个 Uploader 方法,将服务的数据库上传到另一个服务,但它将在一定时间内执行,所以我把它放在另一个线程只要服务正在运行,它就会一直运行。

检查特定网站上的大代理列表的最快方法是什么?

我有一个很大的代理服务器列表(txt文件,格式= ip:每行的端口),并编写下面的代码来检查它们: public static void MyChecker() { string[] lines = File.ReadAllLines(txtProxyListPath.Text); List list_lines = new List(lines); List list_lines_RemovedDup = new List(); HashSet HS = new HashSet(); int Duplicate_Count = 0; int badProxy = 0; int CheckedCount = 0; foreach (string line in list_lines) { string[] line_char = line.Split(‘:’); string ip = line_char[0]; string port = […]

如何使用自定义属性为C#Auto-Property提供默认值?

如何使用自定义属性为C#Auto-Property提供默认值? 这是我想看到的代码: class Person { [MyDefault(“William”)] public string Name { get; set; } } 我知道没有内置方法来使用属性初始化默认值 – 我可以编写自己的自定义类来使用我的自定义属性来初始化默认值吗?