随笔分类 - .NET
摘要:Mvc 2.0 Preview2 增加了客户端验证的功能,但实际使用中,有同事发现正则表达式验证日期输入时,客户端验证成功,而服务端验证总失败。 检查同事的代码,并没有发现明显的问题:(注,此处正则表达式经过简化)[代码] 运行,在文本框中输入 2009-12-30 ,服务端提示正则表达式匹配失败。 不解,反编译RegularExpressionAttribute,其中IsValidate代码如下...
阅读全文
摘要:由于C#现在还没有提供默认参数的功能,因此,遇到需要默认参数的场合,有时候需要用到 DefaultParameterValue。 我在MVC项目中,就常常会遇到需要为Action指定默认参数的情况。当需要为枚举类型的参数提供默认值的时候,出了问题。在运行的时候,总是提示“The dictionary contains a value of type 'System.Int32', bu...
阅读全文
摘要:关于 字段模板在发生 “绑定到支持动态数据的数据源的数据控件内必须存在 DynamicControl/DynamicField ” 例外时的一种解决方法。
阅读全文
摘要:随手写了一个小程序,突然遇到一个问题: 在自定义的控件中,override了一个OnKeyDown,用于处理方向键。结果,无效,跟踪调试发现,方向键无法进入函数断点,但其它如数字字母等键可以。 上网查了一下,发现不少人遇到同样的问题。不过不是在自定义控件中,是在窗体中。当然,解决的方法很简单,设置KeyPreview为true就可以了。 自定义控件可没有KeyPreview属性。 为什么方...
阅读全文
摘要:今天出了一个小问题,倒是令我有些惊讶。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--byte[]data={1,2,3,0,5,6,7,0};intn=Array.IndexOf(data,0,0); 结果,n为-1。 而如果改为:Code high...
阅读全文
摘要:.NET3.0已经Pre-release了。下面的链接可以下载运行库:http://www.microsoft.com/downloads/details.aspx?FamilyId=8D09697E-4868-4D8D-A4CF-9B82A2AE542D&displaylang=en它的发布日期是: 2006-06-23在该页面下面的Related Resources有SDK下载Windows ...
阅读全文
摘要: 本文提供了一个方法,让C++源码和C#源码一起编译链接成一个单一的Assembly。
由于C++提供了IJW方法,允许将旧有C++代码也编译成托管代码,因此这篇小文可以用极小的工作量来彻底解决所有C++遗留代码移植到.NET的问题。
这个方法,再加上前次的小文《您也使用托管C++吗?》,就可以把C++遗留代码移植到.NET的所有方法一网打尽了。
阅读全文
摘要: 转向.NET后,手头上往往仍有旧的模块要重用。也许这些模块是Delphi写的,也许是C/C++写的,或者是其它编程语言……为了能把它们移植到.NET下,或者是在.NET中调用,To be or not to be, that is a question。
在这里,我笔记了几个在工作中遇到的几个场景。不过,这里不包括完全使用C#来重写原来用C++编写的程序这种变态的需求。当你被要求做这种事的时候,请三思而后行……这简直是种非人的折磨。
阅读全文
摘要:VB.NET的函数允许有返回值,反过来说就是VB.NET的函数可以不返回值。我认为这是一个很大的缺陷。假设有下面一个函数Calc,它的功能是计算n的阶乘: Function Calc()Function Calc(n As Integer) As Integer Dim i As Integer Dim r As Integer = 1 For i = 2 To n r = r * i...
阅读全文
摘要: .NET 本身提供了强大的脚本引擎,可以直接使用.NET CLR的任何编程语言作为脚本语言,如VB.NET、C#、JScript, J#等等。使用脚本引擎,我们可以动态生成任意表达式、或动态导入任意脚本文件,并在任意时候执行。
经实践发现,我们可以使用至少两种不同的方式在.NET中使用脚本引擎:VsaEngine和CodeDom。
本文介绍如何以CodeDom方式来动态生成可执行代码。
阅读全文
摘要:关于 int 与 byte[] 的相互转换,Mattias Sjogren 介绍了3种方法。其实应该还有不少方法。在这里,我归纳了包括Mattias Sjogren在内的4种方法。
阅读全文
摘要: .NET的应用程序配置文件,使用的是XML格式。相对INI文件来说,它的功能要强上不少,而且具有很强的可扩展性。它的缺点是不能直接进行写操作,也就是说,不能直接在程序中修改配置文件的数据(当然不是指不能,不过不是本文讨论的范围)。本文主要目的是探讨如何扩展配置文件,并在其加入各种自定义配置信息。
阅读全文
摘要: .NET的应用程序配置文件,使用的是XML格式。相对INI文件来说,它的功能要强上不少,而且具有很强的可扩展性。它的缺点是不能直接进行写操作,也就是说,不能直接在程序中修改配置文件的数据(当然不是指不能,不过不是本文讨论的范围)。本文主要目的是探讨如何扩展配置文件,并在其加入各种自定义配置信息。
阅读全文
摘要:.NET 提供的反射(Reflection)机制可以很方便的加载插件。本文提供一种方法,可以灵活的正确的载入所需的插件。
阅读全文