如何在自定义模型绑定器中validation我的模型?

我在这里询问了我用逗号分隔的数值的问题。 鉴于一些回复,我试图尝试实现我自己的模型绑定器,如下所示: namespace MvcApplication1.Core { public class PropertyModelBinder : DefaultModelBinder { public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { object objectModel = new object(); if (bindingContext.ModelType == typeof(PropertyModel)) { HttpRequestBase request = controllerContext.HttpContext.Request; string price = request.Form.Get(“Price”).Replace(“,”, string.Empty); ModelBindingContext newBindingContext = new ModelBindingContext() { ModelMetadata = ModelMetadataProviders.Current.GetMetadataForType( () => new PropertyModel() { Price = Convert.ToInt32(price) […]

Winforms:避免冻结应用程序

我在“大”文件上做了一些操作(大约4Mb) 我这样做:1。从目录中获取所有文件并将它们放在IList中MyInfoClass具有以下属性:name,extension,fullPath,creationDate,contentPart 2.我执行Linq查询以仅获取某些扩展类型。 3.我循环查询Linq查询结果,每次打开文件,执行一些操作(获取值)并将结果放入MyFileIno.ContentPart。 仅供参考:30个文件,这是一个14秒的操作 这是工作。 问题是,当我从UI运行我的库时,当我单击按钮时,窗口在操作期间冻结。 我想要 : 解冻不冻结表格 看进度操作 你能给我解决这类问题的最佳实践吗? 谢谢, 码 public class FileManager { public string CurrentFileName { get; set; } public void Validation(string path) { IList listFile = GetListFile(path); foreach (InfoFile item in listFile) { CurrentFileName = item.Name; ….. } } } private void button1_Click(object sender, EventArgs e) { var […]

Autofac:隐藏一个复合材料背后的多个逆变实现

我被这个关于(.NET 4.0)协方差和逆向支持Autofac的问题引发了,现在我正在努力实现类似的东西,但没有任何运气。 我想要实现的是以这样的方式配置Autofac:当我解析单个具体的IEventHandler (为了使用container.Resolve进行演示,但通常使用构造函数注入),Autofac将返回一个MultipleDispatchEventHandler包装所有可从请求的处理程序分配的已注册事件处理程序。 换句话说,当我写这个: var handler = container .GetInstance<IEventHandler>(); handler.Handle(new CustomerMovedEvent()); 关于应用程序设计(如下所示),我希望返回一个包装CustomerMovedEventHandler和NotifyStaffWhenCustomerMovedEventHandler的MultipleDispatchEventHandler 。 这是应用程序设计: // Events: public class CustomerMovedEvent { } public class CustomerMovedAbroadEvent : CustomerMovedEvent { } public class SpecialCustomerMovedEvent : CustomerMovedEvent { } // Event handler definition (note the ‘in’ keyword): public interface IEventHandler { void Handle(TEvent e); } // Event handler […]

使用复杂的GUI编写跨平台应用程序

我想开发一个具有复杂GUI的应用程序(带动画的combobox,带样条的图表,透明层……)。 我对C#2.0有很好的经验,而且我正在学习WPF,但我读到了,遗憾的是,没有计划将WPF移植到Mono。 如果我坚持使用C#并使用OpenGL(通过OpenTK )创建自定义GUI控件,我觉得这将是一项艰苦的工作(与GTK集成,调试,难以用于设计表单)。 我可以使用Java(使用JOGL) ,但我不熟悉它,而且我不了解性能问题。 最后一个选项是C ++ ,但我必须做一个大的修订 (自上次使用它以来的几年),我发现很难用C ++开发GUI和便携式应用程序。 (也许我错了!不过,我很害怕用这种语言开发这么复杂的应用程序。) 你有什么建议吗? 我最好选择C#+ OpenTK,Java + JOGL还是返回C ++?

如何在LinqToSQL查询中使用我的枚举?

我的数据库表中有一个用于存储枚举值的字段,例如: create table MyTable ( … Status tinyint not null, … ) 在我的C#课中我有 public enum TStatus : byte { Pending = 1 Active = 2, Inactive = 3, } public TStatus MyStatus { get { return (TStatus)Status; } set { Status = (byte)value; } } 现在我想写一个使用MyTable的MyStatus属性的Linq查询,例如 var q = MyDataContext.GetTable().Where(t => t.MyStatus == TStatus.Active); 但当然,Linq不知道如何将MyStatus解释为SQL。 […]

包装IEnumerable并捕获exception

我有一堆可以Process()对象的类,并返回自己的对象: public override IEnumerable Process(IEnumerable incoming) { … } 我想编写一个可以包装其中一个处理器的处理器类,并记录包装的Process()方法可能抛出的任何未捕获的exception。 我的第一个想法是这样的: public override IEnumerable Process(IEnumerable incoming) { try { foreach (var x in this.processor.Process(incoming)) { yield return x; } } catch (Exception e) { WriteToLog(e); throw; } } 但这不起作用,因为CS1626:不能在带有catch子句的try块的主体中​​产生值 。 所以我想写一些概念上等同但编译的东西。 :-)我有这个: public override IEnumerable Process(IEnumerable incoming) { IEnumerator walker; try { walker = this.processor.Process(incoming).GetEnumerator(); […]

无法在UpdatePanel中找到具有ID的控件

我有一个更新面板,其条件和ChildrenAsTriggers的UpdateMode设置为false。 我只想要几个控件来导致异步回发: // … // … 我尝试加载此页面时收到以下错误: A control with ID ‘btnAddSomething’ could not be found for the trigger in UpdatePanel ‘updPnlMain’. 由于我的btnAddSomething控件位于转发器中,并且可能不会立即存在,因此它的行为就像它不存在一样。 我怎么能绕过这个?

如何确定.NET代码是否在ASP.NET进程中运行?

我有一个通用类的实例,它将在ASP.NET和独立程序下执行。 此代码对正在运行的进程很敏感 – 也就是说,如果在ASP.NET下运行,则不应调用certin方法。 如何确定代码是否在ASP.NET进程中执行? 我目前使用的解决方案将在下面解答。 我希望有人会就为什么这个问题得到落实和/或提出更好的方式来提出评论! 我只能假设至少有些人看过这个问题并说“什么是白痴,ASP.NET代码是.NET代码”。

创建msbuild脚本以使用指定的app.config进行构建,发布,并从不同位置进行更新

我到处搜索这个解决方案,找不到任何东西! 我想有一个msbuild脚本来执行以下操作: 构建项目解决方案 使用指定的app.config(app.config.debug或app.config.release)将构建的解决方案发布到指定的文件夹(开发或生产) 使用指定的配置,知道检查更新的位置。 -if deployment – >签入示例生产文件夹 -if development – >签入示例开发文件夹 该脚本目前有效但有两个问题…… 我无法弄清楚如何让两个不同的安装检查两个不同的地方来检查更新。 我无法自动增加修订版本。 每次使用脚本时,它目前都保持相同的内部版本号。 我的当前脚本: msbuild “C:\sample\sample.csproj” /t:clean /t:build /t:publish /p:Configuration=release /property:PublishDir=”C:\Samplelocation/” /property:UpdatedEnabled=true /property:UpdateRequired=true /property:UpdateUrl=”C:\Samplelocation/” /property:GenerateManifests=true /property:PublishWizardCompleted=true 任何帮助将不胜感激。 提前谢谢!

你可以阻止内存被交换到磁盘吗?

我想知道是否有可能防止对象(类或结构)的内存被交换到磁盘? 编辑:至于为什么我被告知我将要使用的一些数据无法写入磁盘。 我不希望它留下足够长的时间来换掉数据但是认为值得检查。