12 2009 档案
摘要: 朋友说开发电信的MMS,其实需要图片作为附件放在调用WebService接口上,使用Http的Content-Type: Multipart/Related;来发送,真让人感觉不伦不类的。不知道为什么不设计成一个字段是BASE64编码得了呗。
难道只能用朋友说的拼字段的方法了不? 我用Reflect分析了一下,貌似这样也可以实现。
我们知道,我们添加一个WebService引用时,会自动生成从 SoapHttpClientProtocol 的子类。我的想法是,我们写一个 继承自"SoapHttpClientProtocol” 的子类SoapHttpClientProtocolEX, 重写方法:GetWebRequest() 返回我们写的代码 HttpWebRequestEx类,然后在原始 HttpWebRequest 类的GetRequestStream()时,返回我们的流转移器:NetwordStreamEx ,并在方法关闭流 Close() 前,加入自定义的附件信息。
阅读全文
摘要: 新浪博客上好多牛人的博客,有时候想下载下来离线观看,便有了这个软件。 此软件本想做一个支持众博客的下载器,不过后来精力有限,只完成了新浪博客的部分博客的下载。
下载时,目前想从博客地址上,得到博客类型,然后加载不同的博客配置文件,从而获得文章列表分页信息,文章总数等信息,再依配置文件,匹配出博客文章地址。
目前支持在线查看博客,和导出博客到本地功能。(附程序和源码下载)
阅读全文
摘要:在公文升级方案中, 因为使用了新模板, 我需要在原来系统执行某几个函数之前, 做一些检查,如果成立则执行原有函数,否则执行我的新逻辑,然后再依情况决定是不是执行原函数。
我们知道,Javascript中函数有静态函数、成员函数和实例化对象的成员函数之分,这些函数的实现存在正常函数和匿名函数的区分。所以在我们Hook成员时,我们要对这些情况兼而顾之。
要实现这样的东西,我们需要知道修改某一处的函数引用,对于这样的全局函数,我们知道它的所属对象是 window。如果对于类的成员函数,则应该是类.prototype.funName,对于实例的成员,我们可以通过在实例上添加函数来重写方法。
首先我们这个函数是所有函数的方法,所以它必须在 Function.prototyp 上添加一个新的函数Hook, 它的逻辑应该是首先查找函数的名称,如果得到了,则直接改写在指定对象上的函数实现。但如果这个函数是匿名函数,我们需要查找这个对象的所有属性,看哪个属性和这个函数相等,如果有一个,则取出第一个相等的进行Hook。当然,如果Hook时明确指定了属性,则找到这个属性进行Hook。
阅读全文
摘要: 研究了一下,发现系统已经有这类的函数,晕吧!! 实现一个类似Func和Action的方法吧.
调用示例如下:
object inst = new Program();
decimal ret = inst.Dynamic("HelloWorld", Guid.NewGuid(), 2009);
阅读全文
摘要: 上周五快下班时,看到一个博友BillGan文章:DynamicMethod (JIT Compiler encountered an internal limitation. )我还是相信中国人 ,当时没有太多时间,只是实现了调用静态方法的访问,不能称为动态方法调用。今天看到,BillGan好像已经死心了。
不过,其实没有那么绝望的吧,我实现了一个原型,原理是使用Emit声明一个变量,然后强制类型转化成类型,最后再去调用方法:
阅读全文
摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-- 1 <script type="text/javascript"> 2 3 var wordApp = new ActiveXObject("word.application"); ...
阅读全文