<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[海底捞针]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/IsMe</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; IsMe]]></copyright><item><title><![CDATA[在动态方法中的比较运算 （使用.net 中的动态方法编程备忘录9）]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/5752511</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/5752511</guid><author>IsMe</author><pubDate>Wed, 21 Jul 2010 14:31:00 +0800</pubDate><description><![CDATA[一、高级语言的比较运算比较运算，在C#中很简单，一般直接用如下运算符即可： 等于==不等于!=小于==小于等于==大于==大于等于==二、MSIL 中基元类型的比较运算在动态方法中，使用 ILGenerator 对象，OpCodes 与上述比较运算相关的，则有许多：Beq如果两个值相等，则将控制转移到目标指令 Bgq如果第一个值大于或等于第二个值，则将控制转移到目标指令。 Bge_Un当比较无符号整数值或不可排序的浮点型值时，如果第一个值大于第二个值，则将控制转移到目标指令。 Bgt如果第一个值大于第二个值]]></description><category></category></item><item><title><![CDATA[在动态方法中如何尽量减少定义的 LocalBuilder 数量 （使用.net 中的动态方法编程备忘录8）]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/5743901</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/5743901</guid><author>IsMe</author><pubDate>Sun, 18 Jul 2010 10:49:00 +0800</pubDate><description><![CDATA[<br />动态方法中，往往是对配置文件的循环解读中生成的，很多情况下，无法预先知道需要多少变量。<br /> <br />最笨的方法，当然是每当需要时，就定义一个变量，但这样，往往造成定义太多重复类型的变量，每个只用一两次。<br /> <br />特别是，LocalBuilder 类型变量，不能赋予 null 值，所以，你无法先声明一个LocalBuilder，需要时再根据 LocalBuilder 是否为null，而采用直接使用变量还是用 ILGenerator.DeclareLocal 定义后赋值再]]></description><category></category></item><item><title><![CDATA[OpCodes.Call 与 OpCodes.Callvirt （使用.net 中的动态方法编程备忘录7）]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/5741299</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/5741299</guid><author>IsMe</author><pubDate>Sat, 17 Jul 2010 09:44:00 +0800</pubDate><description><![CDATA[<br />MSDN中，对 OpCodes.Call 与 OpCodes.Callvirt 的解释，分别为：<br /> <br />OpCodes.Call：<br /> <br />调用由传递的方法说明符指示的方法。<br /> <br />堆栈转换行为依次为： <br />1.将从 arg1 到 argN 的方法参数推送到堆栈上。<br />2.从堆栈中弹出从 argN 到 arg1 的方法参数；通过这些参数执行方法调用并将控制转移到由方法说明符表示的方法。完成后，被调用方方法生成返回值并将其发送给调]]></description><category></category></item><item><title><![CDATA[使用.net 中的动态方法编程备忘录6（OpCodes.Ldloc 与OpCodes.Ldloca） ]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/5741106</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/5741106</guid><author>IsMe</author><pubDate>Sat, 17 Jul 2010 02:26:00 +0800</pubDate><description><![CDATA[<br />关于 OpCodes.Ldloc 和 OpCodes.Ldloca，MSDN 上说：<br /> <br />OpCodes.Ldloc：<br />将指定索引处的局部变量加载到计算堆栈上。<br /> <br />OpCodes.Ldloca：<br />将位于特定索引处的局部变量的地址加载到计算堆栈上。<br /> <br />好像说得很清楚，但其实却说得不太清楚。<br /> <br />开发过程中，曾有根据配置文件来生成动态方法的需求。在处理类似“A.B.C” 这样的对象的属性的属性时，]]></description><category></category></item><item><title><![CDATA[使用.net 中的动态方法编程备忘录2（使用发出动态方法的意义） ]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/5721044</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/5721044</guid><author>IsMe</author><pubDate>Thu, 08 Jul 2010 14:54:00 +0800</pubDate><description><![CDATA[软件开发，需要一定的灵活性。要实现灵活性，通常是根据配置信息，动态灵活地执行不同代码。比如一个Asp.net程序，你从数据库读出一个DataTable，按照要求，你需要为用户提供多种显示方案，如按Table方式显示时，Table不同行、列用不同格式显示。1、最笨的方法，为每种显示方式做一个页面。这种方式优点是运行效率是最高的，就对一个页面的维护来说，因逻辑简单，所以维护时逻辑也较简单；这种方式缺点是有多少显示方案，你就要为每种方案做一套页面，另外维护时虽然逻辑简单，但可能工作量较大。2、采用较灵活方式，设计]]></description><category></category></item><item><title><![CDATA[使用.net 中的动态方法编程备忘录5（在动态方法中使用条件语句）]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/5719993</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/5719993</guid><author>IsMe</author><pubDate>Thu, 08 Jul 2010 03:14:00 +0800</pubDate><description><![CDATA[1、程序执行时，除了顺序执行外，任何程序设计语言，都有条件语句、循环语句、无条件转移语句。而条件语句，几乎每个过程都离不开。在高级程序编程语言中，使用特定的关键字，编写条件语句是很方便的，如 if语句、if-else、if-else if语句、switch语句等等。但微软中间语句（MSIL）无特定的条件语句，要实现条件转移，必须定义Label，自己以比较语句、条件转移语句组合来实现。2、分析条件语句看下面的C#示例:private static string CompareResult(int i, int]]></description><category></category></item><item><title><![CDATA[ 使用.net 中的动态方法编程备忘录4（DynamicMethod 类的构造函数及访问其他类的私有成员）]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/5719932</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/5719932</guid><author>IsMe</author><pubDate>Thu, 08 Jul 2010 01:03:00 +0800</pubDate><description><![CDATA[使用 类 这种编程方式，一个重要原因就是类的封装性。通过不同的访问修饰符（如private、public、protected等），可限定类成员具有不同的访问级别。一般来说：private 修饰符修饰的成员，只能由该类内部访问；protected 修饰的成员，除了允许当前类访问外，还可运行继承类访问；internal 修饰的成员，可允许同一个程序集内部访问；public 修饰的成员，不但允许同一程序集内部访问，还可运行其他程序集访问（当然，类也必须是 public 的）。在创建动态方法（DynamicMeth]]></description><category></category></item><item><title><![CDATA[使用.net 中的动态方法编程备忘录3（DynamicMethod 的最优访问方式）]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/5719917</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/5719917</guid><author>IsMe</author><pubDate>Thu, 08 Jul 2010 00:32:00 +0800</pubDate><description><![CDATA[由 DynamicMethod 类的语法[ComVisibleAttribute(true)]
publicsealedclassDynamicMethod : MethodInfo可知，DynamicMethod 继承自 MethodInfo，所以是可以用 Invoke 方法来调用的。但这种方式效率不高，更好的方式是声明一个与动态方法返回类型、参数相同的代理，然后用 DynamicMethod 的 CreateDelegate  方法来调用动态方法。如果动态方法中的代码不涉及IO，并且访问很频繁的情况下]]></description><category></category></item><item><title><![CDATA[使用.net 中的动态方法编程备忘录1（如何查看生成的动态方法的代码）]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/5719845</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/5719845</guid><author>IsMe</author><pubDate>Wed, 07 Jul 2010 23:40:00 +0800</pubDate><description><![CDATA[    使用动态方法编程，常常不知生成的动态方法是否正确，这里介绍，使用工具软件查看动态生成的代码的方法。    1、下载并安装可反编译.net程序的工具    我一直用Reflector.exe来反编译和查看exe、dll文件的代码，Reflector.exe 有免费版本，足够使用了。首先，要下载Reflector.exe，只要在搜索引擎搜一下，很容易得到这个软件的下载链接。    2、将发出的动态方法保存到.dll文件    正常情况下，动态方法或动态类、动态生成的程序集并不需要保存，而为了反编译和查看]]></description><category></category></item><item><title><![CDATA[ASP.Net页面中，DropDownList、CheckBoxList控件和页面中动态控件的冲突]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/2430502</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/2430502</guid><author>IsMe</author><pubDate>Sat, 10 May 2008 19:17:00 +0800</pubDate><description><![CDATA[        我在一个项目中建了个页面基类，负责诸如页面共用操作和元素，如Logo、登录信息、页脚页眉等，这些生成的页面元素，基本上都是用LiteralControl或者设置其他控件的InnerHtml来完成。        这个BasePage本来用得好好的一直没事，今天添加一个页面，页面中含有一个DropDownList，一个CheckBoxList，测试时发现提交后Items都被清空了]]></description><category></category></item><item><title><![CDATA[RSS 2.0 DTD，网上找来两个]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/2330974</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/2330974</guid><author>IsMe</author><pubDate>Sat, 26 Apr 2008 11:11:00 +0800</pubDate><description><![CDATA[一、引自 http://www.cnitblog.com/TheThinKing/archive/2007/06/18/28714.html RSS 2.0 DTD -->ELEMENT rss (channel)>ATTLIST rss version CDATA #FIXED "2.0"> A channel can apparently either have one or more i]]></description><category></category></item><item><title><![CDATA[如何在SQL Server中的SELECT TOP 中使用变量]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/2319653</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/2319653</guid><author>IsMe</author><pubDate>Thu, 24 Apr 2008 03:32:00 +0800</pubDate><description><![CDATA[        数据库环境： Sql Server 2005        查询语句类似：       SELECT TOP XX * FROM tbl ...       以前使用时，这种查询一般都是在程序中拼好Sql语句再执行，这次打算在存储过程中，用参数传入查询行数，使用类似：        SELECT TOP @queryCount * FROM tbl       ]]></description><category></category></item><item><title><![CDATA[Asp.net 中，FileUpload 上传文件为何总失败，而 HasFile 为何为 False]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/2223920</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/2223920</guid><author>IsMe</author><pubDate>Thu, 27 Mar 2008 20:44:00 +0800</pubDate><description><![CDATA[      Asp.net 比 Asp 相比，极大地方便了程序员开发，但同时，因为因为对较低层的严密的封装，程序员难以知道其实现过程，同时，也难以干预。      做一个文件上传，开始是想在文件a.aspx 中提交，在 b.aspx 中接受的。如果在 Asp 中实现这样的功能是很简单的，但在 Aspx 中，我做实验、查资料，最终也没搞定。      后来只好在 iframe 中同文件提交和]]></description><category></category></item><item><title><![CDATA[服务器响应HTTP的类型ContentType大全]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/2210837</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/2210837</guid><author>IsMe</author><pubDate>Sun, 23 Mar 2008 20:15:00 +0800</pubDate><description><![CDATA[本文引自http://9host.cn/Javascript/20074221808146365.htmlContentType 属性指定服务器响应的 HTTP 内容类型。如果未指定 ContentType，默认为 text/html。在ASP中使用它：     ".*"="application/octet-stream" ".001"="application/x-001" "]]></description><category></category></item><item><title><![CDATA[用户 'NT AUTHORITY/NETWORK SERVICE' 登录失败]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/2163066</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/2163066</guid><author>IsMe</author><pubDate>Mon, 10 Mar 2008 13:01:00 +0800</pubDate><description><![CDATA[环境：WINDOWS Server 2003 + VS2005 + Sql Server 2005，Web 开发昨天感觉 IIS 有点问题，就运行了一下 aspnet_regiis.exe，不想，调试 Aspx 页面时，不能连接数据库了，提示：用户 NT AUTHORITY/NETWORK SERVICE 登录失败。在网上查解决方法，很多方法都有在Microsoft SQL Serve]]></description><category></category></item><item><title><![CDATA[在asp.net 服务端一些共用方法（包括静态方法）中使用Request和Response对象]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/2160404</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/2160404</guid><author>IsMe</author><pubDate>Sun, 09 Mar 2008 21:53:00 +0800</pubDate><description><![CDATA[在asp.net服务端一些公用方法（包括静态类的静态方法）中，常常需要访问调用该方法的页面的 Request 和 Response，最简单的，就是在该方法参数中添加一个Page类型的参数，在方法内通过该参数来引用 Request 和 Response。还有不通过参数的方法：System.Web.HttpContext 类有一个静态属性Current，返回当前请求的 HttpContext ]]></description><category></category></item><item><title><![CDATA[Asp.net 中，在服务端向客户端写脚本的常用方法]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/2160372</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/2160372</guid><author>IsMe</author><pubDate>Sun, 09 Mar 2008 21:34:00 +0800</pubDate><description><![CDATA[在Asp.net 服务端处理脚本，一般都用 ClientScriptManager ，即web窗体服务端的this.ClientScript。该对象比较常用的方法：1、RegisterArrayDeclaration：在服务端，向客户端生成一个数组定义      服务端代码：   this.ClientScript.RegisterArrayDeclaration("aAry", "1,2]]></description><category></category></item><item><title><![CDATA[Asp.net 中从服务端代码中通过Request可得到的路径]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/2160231</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/2160231</guid><author>IsMe</author><pubDate>Sun, 09 Mar 2008 20:36:00 +0800</pubDate><description><![CDATA[aspx 文件在浏览器地址栏中的地址为：http://localhost:1219/Photo/Dict/LeftTree.aspx?tableID=2&nTrack=2则this.Request.Url.ToString()=http://localhost:1219/Photo/Dict/LeftTree.aspx?tableID=2&nTrack=2this.Request.Url.Ho]]></description><category></category></item><item><title><![CDATA[使用高效的 .net 反射发出]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/1841786</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/1841786</guid><author>IsMe</author><pubDate>Wed, 24 Oct 2007 14:50:00 +0800</pubDate><description><![CDATA[本文概述测试结果分析测试结果测试代码概述对于vs.net 反射发出动态方法、动态类型等，原来一直认为虽然有用，但效率不如常规方法编译的，因此一直没有深入研究，直到前些天才发现，如果用法适当，其运行效率不比常规方法创建的类、方法差，甚至更高。 我是根据MSDN中的一个示例为基础做的测试，其位置位于：MSDN  开发工具和语言    Visual Studio 文档    ]]></description><category></category></item><item><title><![CDATA[Ajax 应用的思考]]></title><link>https://blog.youkuaiyun.com/IsMe/article/details/1827849</link><guid>https://blog.youkuaiyun.com/IsMe/article/details/1827849</guid><author>IsMe</author><pubDate>Tue, 16 Oct 2007 16:51:00 +0800</pubDate><description><![CDATA[ 最近看MS的Ajax，感觉是功能强大，应用范围有限。Ajax 被设计的目的，就是为了能够在不刷新页面的情况下，访问后台Web服务，并用返回数据更新页面。在Web 应用程序中，不论服务端如何实现，在客户端呈现的都是一个页面，而呈现的页面，按同页面是否需要回发、可能的回发次数，大致可分为：    不需要同页面回发，Ajax 对此类页面没有意义；     需要同页面回发，且需要多次]]></description><category></category></item></channel></rss>