在应用程序中宿主MEF
{
var catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly());
var container = new CompositionContainer(catalog);
container.ComposeParts(this);
}
{
void GetBookName();
}
/// <summary>
/// 导入
/// </summary>
[Export(typeof(IBookService))]
public class ComputerBookService : IBookService
{
public void GetBookName()
{
Console.WriteLine("《Hello Silverlight》");
}
}
/// 导入接口的实现部件(Part)
/// </summary>
[Import]
public IBookService Service { get; set; }
/// 宿主MEF并组合部件
/// </summary>
private void Compose()
{
var catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly());
var container = new CompositionContainer(catalog);
//将部件(part)和宿主程序添加到组合容器
container.ComposeParts(this,new ComputerBookService());
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.Composition;
using System.ComponentModel.Composition.Hosting;
using System.Reflection;
namespace HostingMef
{
public interface IBookService
{
void GetBookName();
}
/// <summary>
/// 导入
/// </summary>
[Export(typeof(IBookService))]
public class ComputerBookService : IBookService
{
public void GetBookName()
{
Console.WriteLine("《Hello Silverlight》");
}
}
class Program
{
/// <summary>
/// 导入接口的实现部件(Part)
/// </summary>
[Import]
public IBookService Service { get; set; }
/// <summary>
/// 宿主MEF并组合部件
/// </summary>
private void Compose()
{
var catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly());
var container = new CompositionContainer(catalog);
//将部件(part)和宿主程序添加到组合容器
container.ComposeParts(this,new ComputerBookService());
}
static void Main(string[] args)
{
Program p = new Program();
p.Compose();
p.Service.GetBookName();
}
}
}
转载于:https://blog.51cto.com/beniao/343346
在应用程序中宿主MEF相关推荐
- Silverlight中使用CompositionInitializer宿主MEF
MEF可以在传统应用程序中使用(包括桌面的Winform.控制台程序和Web的ASP.NET),也可以在RIA的Silverlight中使用.在Silverlight中只是宿主的方式有所不同,实际上在 ...
- 在 .NET Compact Framework 2.0 中宿主 ActiveX 控件
适用于: ActiveX Microsoft .NET Compact Framework 版本 2.0 摘要:了解如何在使用 .NET Compact 的应用程序中宿主 ActiveX 控件.本文提 ...
- 科研文献|根相关真菌群落反映了亚热带森林中宿主的空间共生模式
TITLE:Root-associated fungal community reflects host spatial co-occurrence patterns in a subtropical ...
- 技巧:Silverlight应用程序中如何获取ASP.NET页面参数
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://terrylee.blog.51cto.com/342737/87093 ...
- 获取控制台窗口的句柄(HWND)和程序中输出回车键
一.获取窗口句柄基于类名或窗口名称: http://support.microsoft.com/kb/124103/zh-cn Win32 API 提供用于获取与一个控制台应用程序相关联的窗口句柄没有 ...
- 在WinForm程序中嵌入ASP.NET
现在的流行趋势是桌面程序Web化,Web程序桌面化,呵呵.最终目标就是你中有我,我中有你.例如MSN Explorer就是一个很好的展示,让用户在使用的时候分不清什么时候是在本地什么时候是在网络.而这 ...
- 在.NET Core中使用MEF
题记:微软的可托管扩展框架也移植到.NET Core上了. 可托管扩展框架(Managed Extensibility Framework,MEF)是微软为大型应用程序(比如Visual Studio ...
- java面试题8 牛客:在Web应用程序中,( )负责将HTTP请求转换为HttpServletRequest对象
在Web应用程序中,( )负责将HTTP请求转换为HttpServletRequest对象 A Servlet对象 B HTTP服务器 C Web容器 D JSP网页 首先我们来看看web程序的 ...
- 在WinForm程序中嵌入ASP.NET[转]
在WinForm程序中嵌入ASP.NET 现在的流行趋势是桌面程序Web化,Web程序桌面化,呵呵.最终目标就是你中有我,我中有你.例如MSN Explorer就是一个很好的展示,让用户在使用的时候分 ...
最新文章
- 目标跟踪初探(DeepSORT)
- poj2752 字符串子KMP应用
- Windows 10 下 Anaconda3 (Python 3.8) 配置 OpenCV-4.4.0
- python的5种高级用法
- mysql putty 备份_Linux下mysql数据库的备份-putty
- 雅礼集训 2017 Day1
- 计算机二级如何接受审阅者修订,操作方法 合并修订文档 步骤1 要求审阅者
- python网络编程100例_python网络编程
- android真实项目教程(五)——有时三点两点雨_by_CJJ
- SpringMVC实现ajax上传图片实时预览
- 2022年低压电工考试题及在线模拟考试
- 最详细的选型攻略!选择工业相机必须搞懂这10大要素!(建议收藏)
- 5+:基于单细胞测序和转录组数据构建胰腺癌中坏死性凋亡相关的预后模型
- 插件!最好用的翻译插件!!
- Java编程笔记6:接口
- cocos3.X拖动精灵移动
- 【ZT】iSpring Free Cam – 免费易用的「录制屏幕」工具 [Windows]
- 这些前端资源,你值得拥有
- 业务中台系统架构:大中台+小前台电子商务系统搭建框架思维
- 装在笔记本里的私有云环境:网络存储篇(中)
热门文章
- 微信公众号自定义菜单跳转小程序
- 布尔类型和三目运算符
- SQL Server创建视图——视图的作用
- React router 4 获取路由参数,跨页面参数
- Java线程池 源码分析
- css 全局 兼容性问题
- device not ready cuda
- No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer解决方法
- mongodb安装失败与解决方法(附安装教程)
- PHP上传文件大小限制问题 post_max_size对大小的影响及解决方法