上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 37 下一页
摘要: http://msdn.microsoft.com/zh-cn/magazine/ee291628.aspx 阅读全文
posted @ 2012-06-22 21:38 Ken-Cai 阅读(131) 评论(0) 推荐(0) 编辑
摘要: http://msdn.microsoft.com/zh-cn/magazine/ee291628.aspx有时,一个部件可能一个缺少的导入.在进行组合时,不会触发异常,只是该部件不会进行组合而已。 阅读全文
posted @ 2012-06-22 21:28 Ken-Cai 阅读(155) 评论(0) 推荐(0) 编辑
摘要: http://msdn.microsoft.com/zh-cn/magazine/ee291628.aspx允许部件在系统中出现新的匹配导出时自动更新其导入。[Export]public class ViewFactory{ [ImportMany(AllowRecomposition=true)] IEnumerable<Lazy<IView, IViewMetadata>> Views { get; set; } public IEnumerable<View>GetViews(ViewTypes viewType) { return Views.Whe 阅读全文
posted @ 2012-06-22 07:16 Ken-Cai 阅读(235) 评论(0) 推荐(0) 编辑
摘要: http://msdn.microsoft.com/zh-cn/magazine/ee291628.aspx System.Lazy<T>: 可延迟实例的实例化,直至访问 Lazy 的 Value 属性.Lazy<T,TMetadata> : 允许在不实例化基础导出的情况下访问导出元数据。TMetadata 是元数据视图类型。元数据视图是接口,用于定义对应于所导出元数据中的键的只读属性。访问元数据属性时,MEF 将动态实现 TMetadata,且将基于导出提供的元数据来设置值。[Export]public class ViewFactory{ [ImportMany] 阅读全文
posted @ 2012-06-22 00:40 Ken-Cai 阅读(299) 评论(0) 推荐(0) 编辑
摘要: [MetadataAttribute]//指明 类ExportViewAttribute 将提供元数据。将类的所有公共属性输出为元数据。这里只有一个ViewType 属性。[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] //这指定该属性仅对类有效,且只能存在一个 ExportView 特性???public class ExportViewAttribute : ExportAttribute{ public ExportViewAttribute() : base(typeof(IView))// Export( 阅读全文
posted @ 2012-06-22 00:39 Ken-Cai 阅读(324) 评论(0) 推荐(0) 编辑
摘要: http://msdn.microsoft.com/zh-cn/magazine/ee291628.aspx元数据可以用来区分导出。区分导出也可以用其它的技术,如在每个部件中添加一个属性来区分。但是,使用原数据有它的优点:部件的实例化可延迟到需要时进行,这可节约资源并提高性能。[ExportMetadata("ViewType", "SalesOrder")] //键值对[Export(typeof(IView)]public partial class SalesOrderView : UserControl, IView{}//以上代码直接使用字符串 阅读全文
posted @ 2012-06-22 00:26 Ken-Cai 阅读(310) 评论(0) 推荐(0) 编辑
摘要: http://msdn.microsoft.com/zh-cn/magazine/ee291628.aspx默认情况下,容器中的所有部件实例都是单例,因而由在容器中导入它们的所有部件共享。因此,SalesOrderView 和 ViewFactory 的所有导入程序都将获得同一实例。在很多情况下需要这样,因为这样便无需拥有其他组件所依赖的静态成员。但是,有时每个导入程序都需要获取自己的实例,例如用于同时在屏幕上查看多个 SalesOrderView 实例。MEF 中的部件创建策略可以是以下三个值之一:CreationPolicy.Shared、CreationPolicy.NonShared 阅读全文
posted @ 2012-06-21 23:54 Ken-Cai 阅读(178) 评论(0) 推荐(0) 编辑
摘要: http://msdn.microsoft.com/zh-cn/magazine/ee291628.aspx[Export]public class ViewFactory{ [ImportMany] IEnumerable<IView> Views { get; set; }}[Export(typeof(IView))]public partial class SalesOrderView : UserControl, IView{}//in a contract assemblypublic interface IView { }MEF 还支持使用具体集合(如 Observa 阅读全文
posted @ 2012-06-21 23:45 Ken-Cai 阅读(216) 评论(0) 推荐(0) 编辑
摘要: http://msdn.microsoft.com/zh-cn/magazine/ee291628.aspx原文如下, 翻译得有点晕:开始创建约定时,需要能够将这些约定部署到第三方。实现此目的的常用方法是使某个约定程序集包含扩展程序将实现的约定的接口。该约定程序集成为部件将引用的 SDK 形式。常见模式是采用“应用程序名称 + .Contracts”的形式命名约定程序集,如 SalesOrderManager.Contracts。是指经常用的 typeof()??? 阅读全文
posted @ 2012-06-21 23:42 Ken-Cai 阅读(132) 评论(0) 推荐(0) 编辑
摘要: http://msdn.microsoft.com/zh-cn/magazine/ee291628.aspx[Export (typeof(ISalesOrderView))][Export (typeof(UserControl))]public partial class SalesOrderView : UserControl, ISalesOrderView{ ...}还没使用过这种情况!!! 阅读全文
posted @ 2012-06-21 23:37 Ken-Cai 阅读(134) 评论(0) 推荐(0) 编辑
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 37 下一页