CompositionContainer学习
来源:互联网 发布:intouch组态软件 破解 编辑:程序博客网 时间:2024/05/09 16:20
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication1{ using System.ComponentModel.Composition; using System.ComponentModel.Composition.Hosting; using System.Reflection; public interface IBookService { string BookName { get; set; } string GetBookName(); } #region //[Export(typeof(IBookService))] //将类声明导出为IBookService接口类型 //[Export("契约名")] //默认的导出类型是object类型 [Export("MusicBook", typeof(IBookService))] //契约名 public class MusicBook : IBookService { public string BookName { get; set; } public string GetBookName() { return "MusicBook"; } } [Export("MusicBook", typeof(IBookService))] public class MathBook : IBookService { public string BookName { get; set; } public string GetBookName() { return "MathBook"; } } [Export("MusicBook", typeof(IBookService))] public class HistoryBook : IBookService { public string BookName { get; set; } public string GetBookName() { return "HistoryBook"; } } #endregion class Program { //[Import] //[Import("MusicBook")] //使用[Import]导入刚刚导出的MusicBook [ImportMany("MusicBook")] public IEnumerable<IBookService> Service { get; set; } //public IBookService Service { get; set; } private void Compose() { var catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly()); CompositionContainer container = new CompositionContainer(catalog); container.ComposeParts(this); } static void Main(string[] args) { Program pro = new Program(); pro.Compose(); if (pro.Service != null) { //Console.WriteLine(pro.Service.GetBookName()); foreach (var s in pro.Service) Console.WriteLine(s.GetBookName()); } Console.Read(); } }}
0 0
- CompositionContainer学习
- MEF学习系列(4): 组合容器(CompositionContainer)和目录(Catalog)
- ExportAttribute, ImportAttribute, CompositionContainer and MEF in ASP.NET MVC 3
- 学习
- 学习
- 学习
- 学习
- 学习
- 学习
- 学习
- 学习
- 学习
- 学习
- 学习
- 学习
- 学习
- 学习
- 学习
- UVA10167 Birthday Cake
- POJ 2778 DNA Sequence (AC自动机 + dp)
- 黑马程序员----多线程
- 在Jquery里格式化Date日期时间数据
- 009实现一个算法来删除单链表中的一个结点,只给出指向那个结点的指针(keep it up)
- CompositionContainer学习
- HDU 1303 Doubles
- 分治与递归----归并排序
- AVL树----java
- 灵光一现:应对用户需求改变对某视频网站推荐算法的改进
- IT职业生涯感悟:开源经历就是最好的简历
- hdu 2602 Bone Collector
- lua学习笔记11:lua中的小技巧
- UI控件圆角形状设置