摘要:
我们在使用C# 语言的Assembly.Load 来加载托管程序集并使用反射功能时,一般需要先通过Assembly.Load(), Assembly.LoadFrom() 等方法将目标托管程序集加载到当前应用程序域中,然后生成对应实例,最后再进行调用实例的属性或者方法。一般情况下,我们调用Assembly.Load 一类方法是不会出问题的,但是对于以下几种情况Assembly.Load 方法无法处理:程序集可能是延迟签名的。程序集可能被CAS 策略保护。宿主程序与目标程序集的处理器架构不同。当加载目标程序集时,目标程序集中的方法可能正在运行。 (比如,模块初始化)程序集可能应用了绑定策略, . 阅读全文
阅读排行榜
WCF 第十三章 可编程站点 使用WebGet和WebInvoke
2011-06-07 07:09 by DanielWise, 22720 阅读, 收藏,
摘要:
服务可以使用WebHttpBinding以及WebGet或者WebInvoke属性来暴露。这些属性每一个都确定HTTP动作、消息格式以及需要暴露给一个操作的消息体形式。我们将检查这些属性的每一个并给出使用每个的原因。WebGetWebGet属性使用GET动词暴露操作。GET相对于其他HTTP动作有重要的优势。首先,通过在一个浏览器地址栏中输入服务URI可以直接地访问终结点。参数可以作为查询字符串或者编码字符串在URI中发送。其次,客户端以及其他下游系统比如代理服务器可以很容易地基于缓存策略来为服务缓存资源。由于缓存能力,WebGet属性应该只用来做收集用。 列表13.6 显示了使用WebGet 阅读全文
C# 线程手册 第六章 线程调试与跟踪
2012-04-21 16:41 by DanielWise, 16212 阅读, 收藏,
摘要:
调试与跟踪是两个经常使用到的技术,这两种技术对程序员是非常必要的。前者允许开发人员分析一个程序的变量值以及代码,一步一步跟踪代码流程。后者允许我们跟踪我们应用程序的行为,在一个监听器(一个日志文件,Windows 事件日志等)中显示信息。它们是创建鲁棒性应用程序的基础,因为它们给开发人员提供了一个简单的方式去跟踪并理解我们的应用程序是如何工作的。这两种技术最大的不同是跟踪可以在一个程序运行过程中完成,而调试用于设计阶段以及我们的最终版程序发布之前。 桌面应用程序开发人员通常有出色的调试技术支持,能够使用断点去检查变量内容。.NET 在这方面也不例外,但是在一个多线程应用程序中使用断点来观察一. 阅读全文
C# 线程手册 第二章 .NET 中的线程 线程挂起与恢复
2012-01-16 17:10 by DanielWise, 15391 阅读, 收藏,
摘要:
线程类的Suspend() 和 Resume() 方法可以用来挂起/恢复线程。Suspend()方法将会立即挂起当前线程直到另外一个线程把它唤醒。当我们调用Suspend()方法时,线程将会进入SuspendRequested 或者 Suspended 状态。我们来看一个例子。我们创建一个新的C#应用程序并在一个新线程中生成素数。这个应用程序有挂起以及恢复素数生成线程的选项。为了方便操作和演示,我们创建一个新的C# 窗体应用程序, PrimeNumbers:程序界面上有一个列表和 三个控制按钮。列表用来显示素数,三个控制按钮用来启动、挂起以及恢复线程。初始化时我们会将挂起和恢复按钮禁用,由于这 阅读全文
浙公网安备 33010602011771号