摘要: 五一假期后的第一天上班,无聊,做了一个简单的多文件上传,如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data;using ... 阅读全文
posted @ 2014-05-04 22:08 jello chen 阅读(602) 评论(2) 推荐(0) 编辑
摘要: 1.MSDN上的文章:COM Interop教程2.接口的三种类型:IDispatch、IUnknown和Dual3.使用TlbImp来更灵活地自动生成RCW4.托管事件基于委托,而非托管事件(在 COM 中)基于连接点5.可new出RCW对象,也可以使用COM API中的CoCreateInsta... 阅读全文
posted @ 2014-04-27 12:32 jello chen 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 1.在在 C# 中通过 P/Invoke 调用Win32 DLL这篇文中,详细介绍了P/Invoke的基本知识以及使用。2.InAttribute和OutAttribute特性与C#中ref和out关键字的不同,注意传递方向的不同。3.P/Invoke Interop Assistant工具的善用。... 阅读全文
posted @ 2014-04-22 22:06 jello chen 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 一个MEF容器实例是不可变的。如果catalog支持改变(像观察一个目录的改变)或是如果你的代码在运行时添加或移除部件,改变都可能发生。以前,你不得不作出改变并在组合容器上调用它的组合方法。在Preview 4 版中,我们已经介绍了对Composition Batch的支持。批处理包含了一系列要添加... 阅读全文
posted @ 2014-04-17 22:42 jello chen 阅读(606) 评论(0) 推荐(0) 编辑
摘要: 查询组合容器组合容器暴露了几个get exports的重载方法和导出对象和对象集合。你需要注意下面的行为:当请求单个对象实例时,如果未发现导出,一个异常将被抛出当请求单个对象实例时,如果发现超过一个,一个异常将被抛出GetExportedValue方法在下面的代码片段中,我们请求一个Root(契约)... 阅读全文
posted @ 2014-04-17 21:19 jello chen 阅读(842) 评论(1) 推荐(0) 编辑
摘要: 一些应用程序被设计成在运行时可以动态改变。例如,一个新的扩展被下载,或者因为其它的多种多样的原因其它的扩展变得不可用。MEF处理这些多样的场景是依赖我们称作重组的功能来实现的,它可已在最初的组合后改变导入的值。导入可以通知MEF它通过[Import]使用Allowrecomposition属性来支持... 阅读全文
posted @ 2014-04-17 13:19 jello chen 阅读(453) 评论(0) 推荐(0) 编辑
摘要: 理解MEF容器中部件的生命周期及其含义是非常重要的。鉴于MEF重点在开放端应用程序,这将变得尤其重要的,一旦app ships和第三方扩展开始运行,作为应用程序的开发者将很好地控制这一系列的部件。生命周期可以被解释为这样一个部件期望的共享物,无论是一个新的部件被创建还是一个部件被关闭或释放都由控制策... 阅读全文
posted @ 2014-04-16 23:27 jello chen 阅读(855) 评论(0) 推荐(0) 编辑
摘要: 当在使用子容器的时候,基于某些具体标准来过滤目录可能是重要的。例如,基于部件的创建策略来过滤是很常见的。下面的代码片段演示了如何构建这种特别方法:var catalog = new AssemblyCatalog(typeof(Program).Assembly);var parent = new ... 阅读全文
posted @ 2014-04-14 22:14 jello chen 阅读(348) 评论(0) 推荐(0) 编辑
摘要: MEF特性化编程模型的价值主张之一是通过catalogs动态发现部件的能力。Catalogs允许应用程序很容易地消费那些通过[Export]已经自我注册的exports。Assembly Catalog为了在一个特定的程序集中发现所有的exports,可以使用System.ComponentMode... 阅读全文
posted @ 2014-04-13 23:26 jello chen 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 在导出声明这一节中解释了部件导出服务和值的基础知识。在某些情况下,出于多种原因,关联与导出相关的信息是有必要的。通常,它被用来解释一个指定的普通契约实现的能力。这对于允许导入约束满足它的导出,或者导入此时所有可用的实现和检查它在使用导出之前在运行时的能力是很有用的。在Export上附加Metadat... 阅读全文
posted @ 2014-04-13 19:53 jello chen 阅读(414) 评论(0) 推荐(0) 编辑