首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MEF .NET核心如何导出CompositionHost?

MEF是Managed Extensibility Framework的缩写,是一个用于构建可扩展应用程序的.NET核心库。它允许开发人员通过插件模块化的方式扩展应用程序的功能。

要导出MEF .NET核心的CompositionHost,可以按照以下步骤进行:

  1. 导入MEF相关的命名空间:
代码语言:txt
复制
using System.Composition;
using System.Composition.Hosting;
  1. 创建一个扩展容器(CompositionContainer):
代码语言:txt
复制
var container = new ContainerConfiguration()
    .WithAssembly(typeof(YourType).Assembly)
    .CreateContainer();

这里使用ContainerConfiguration类创建一个容器配置,然后使用WithAssembly方法将需要导出的类型所在的程序集传入,最后调用CreateContainer方法创建容器。

  1. 导出CompositionHost:
代码语言:txt
复制
var compositionHost = new CompositionHost(container);

通过将上一步创建的扩展容器传入CompositionHost的构造函数,就可以创建一个CompositionHost实例。

导出CompositionHost之后,您可以使用它来进行MEF相关的操作,比如获取导出的组件实例等。

MEF在实际应用中具有广泛的应用场景,可用于实现插件式架构、模块化开发和组件重用等。以下是一些腾讯云的相关产品和介绍链接:

请注意,以上仅是示例,您可以根据具体需求选择适合的腾讯云产品。同时,这些链接仅提供给您作为参考,不代表对腾讯云产品的推荐或保证。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

.NET Core 和 .NET Framework 中的 MEF2

---- MEFMEF2 其实微软发布了四个版本的 MEF: 随着 .NET Framework 4.0 发布,微软称之为 MEF 随着 .NET Framework 4.5 发布,微软让它更好用了...中 MEF2 里 2 的部分;随后 .NET Core 中也加入了 MEF2,也是 .NET Framework 中 MEF2 里 2 的部分 Visual Studio 开发团队觉得 .NET Framework...但是,为了方便大家理解,在这一节我将只说 MEF2 最原生的使用方法。框架那一节我才会说明如何自定义业务代码的写法。...MEF2 之所以为 2,因为它除了能通过 [Export] 特性导出,还能直接在框架中发现而不必由业务开发者手动指定。这在第三方代码或者不希望被 MEF 侵入的代码中非常有用。...例如,我们将所有已有的 ViewModel 导出: // 使用 ConventionBuilder 自动导出所有的 ViewModel。

1.4K10

.Net5中WebApi使用MEF2框架的使用

关于MEFMEF2 微卡智享 微软发布了四个版本的 MEF: 随着 .NET Framework 4.0 发布,微软称之为 MEF 随着.NET Framework 4.5 发布,微软让它更好用了,微软称之为...MEF2,但因为接口兼容,也直接称之为 MEF .NET 开发团队觉得 MEF 第一代性能太差,于是通过 NuGet 为移动设备发布了可移植类库,是个轻量级版本,只移植了 .NET Framework...中 MEF2 里 2 的部分;随后 .NET Core 中也加入了 MEF2,也是 .NET Framework 中 MEF2 里 2 的部分 Visual Studio 开发团队觉得 .NET Framework...里的 MEF2 性能太差,NuGet 版的 MEF2 功能太少,于是自己又写了一个,微软称之为 VS-MEF MEF2 是微软后来以 NuGet 包形式发布的 MEF2;适用于 .NET Framework...加载后的组件要加上特性ImportMany,而定义的组合窗口是使用CompositionHost,这里就和最初的Mef完全不一样的了。

98630
  • .NET自带IOC容器MEF之初体验

    本文主要把MEF作为一种IOC容器进行讲解,.net中可用的IOC容器非常多,如 CastleWindsor,Unity,Autofac,ObjectBuilder,StructureMap,Spring.Net...概述 官方说法: Managed Extensibility Framework(MEF)是.NET平台下的一个扩展性管理框架,它是一系列特性的集合,包括依赖注入(DI)等。...简短说一下MEF的工作原理,MEF核心包括一个catalog和一个CompositionContainer。category用于发现扩展,而container用于协调创建和梳理依赖性。...MEF原理上很简单,找出有共同接口的导入、导出。然后找到把导出的实例化,赋给导入。说到底MEF就是找到合适的类实例化,把它交给导入。...如何声明一个部件-导入与导出 导出”是部件向容器中的其他部件提供的一个值,而“导入”是部件向要通过可用导出满足的容器提出的要求。

    1.8K21

    Asp.Net Mvc3.0(MEF依赖注入理论)

    前言 Managed Extensibility Framework(MEF)是.NET平台下的一个扩展性管理框架,它是一系列特性的集合,包括依赖注入(DI)等。...说到底MEF就是找到合适的类实例化,把它交给导入。 使用 MEF 编写的可扩展应用程序会声明一个可由扩展组件填充的导入,而且还可能会声明导出,以便向扩展公开应用程序服务。 ...如何声明一个部件-导入和导出 导出”是部件向容器中的其他部件提供的一个值,而“导入”是部件向要通过可用导出满足的容器提出的要求。...如何导入多个部件  一般的 ImportAttribute 特性由一个且只由一个 ExportAttribute 填充。 如果有多个导出可用,则组合引擎将生成错误。...需要在关闭时执行工作的部件和需要释放资源的部件应照常为 .NET Framework 对象实现 IDisposable。

    70930

    WPF 使用 Composition API 做高性能渲染

    先更新自己的系统到1803或以上,如果是想成为 Windows 开发者,就需要自己的系统是最新的 然后下载安装 VS 2019 最新版本,安装 .NET Core 3.0 预览版 官方下载链接 VisualStudio...2019 .NET Core 下载运行代码 从 github 官方 https://github.com/Microsoft/Windows.UI.Composition-Win32-Samples...HelloComposition.csproj 文件,同时删除 HelloComposition\Properties\AssemblyInfo.cs 文件 <Project Sdk="Microsoft.<em>NET</em>.Sdk.WindowsDesktop...项目主要代码 那么代码是<em>如何</em>写的?...使用封装之后的方法,简单告诉大家<em>如何</em>添加 Visual 和动画 最后一个文件是主窗口,里面也就是放了一个按钮和 CompositionHostControl 代码很简单 不足 虽然可以在 WPF 用

    2K20

    Asp.Net Mvc3.0(MEF依赖注入理论)

    前言 Managed Extensibility Framework(MEF)是.NET平台下的一个扩展性管理框架,它是一系列特性的集合,包括依赖注入(DI)等。...说到底MEF就是找到合适的类实例化,把它交给导入。 使用 MEF 编写的可扩展应用程序会声明一个可由扩展组件填充的导入,而且还可能会声明导出,以便向扩展公开应用程序服务。 ...如何声明一个部件-导入和导出 导出”是部件向容器中的其他部件提供的一个值,而“导入”是部件向要通过可用导出满足的容器提出的要求。...如何导入多个部件  一般的 ImportAttribute 特性由一个且只由一个 ExportAttribute 填充。 如果有多个导出可用,则组合引擎将生成错误。...需要在关闭时执行工作的部件和需要释放资源的部件应照常为 .NET Framework 对象实现 IDisposable。

    68720

    无特性的 MEF 配置方法

    Managed Extensibility Framework (MEF) 旨在为 Microsoft .NET Framework 开发人员提供一种简便的方法来构建松散耦合的应用程序。...编写 .NET Framework 4 中的扩展或部件意味着依赖于 MEF 程序集,这会将开发人员束缚到特定的依赖关系注入 (DI) 框架。....NET Framework 4.5 提供了一种集中进行配置的方法,以便可以编写一组规则以说明如何创建和编写扩展点和组件。...最后,我将讨论如何将约定驱动的配置加入到应用程序模型中,以及它如何将使用 MEF 和现成的 DI 准则变成一件非常简单的事情。...他可能会隐匿在 MEF CodePlex 网站上,挂在 Twitter 上 (twitter.com/alokshriram),偶尔还会在 .NET 博客上发帖子。

    1.3K50

    使用 MEF 轻松实现云部署

    在本文中,我们将看看如何使用 MEF 使云部署更易于管理一点、更灵活一些。MEF(以及 Unity 之类的类似框架)是一种软件结构,可将开发人员从管理依赖关系解析、对象创建和实例化等工作中释放出来。...MEF 将为我们注入的诊断依赖关系。...知道要导出的内容十分重要,因为这些内容将会成为用来解析您所需实例的约定。Microsoft .NET Framework 4.5 将给 MEF 带来一些改进,将允许放宽当前围绕容器中的泛型的一些约束。...图 5 初始导出 我们在这里没有转储整个容器,而是专门请求 IDiagnostics 接口,然后全部导出类型 IBusinessRule。...您可以将此配置为在部署内发生,但问题之一是如何进行协调。为此,要求协调实例的重新启动,因此,或者需要选择一个首要实例,或者要具有某个投票系统。

    1.3K70

    【翻译】WPF应用程序模块化开发快速入门(使用Prism框架)【上】

    这篇快速入门文章包括如何使用Prism进行编码、探索和创建模块的示例 创建模块: 模块是实现了IModule接口的类, 可以通过声明特性来给模块命名、控制其初始化、定义依赖等 注册模块: 模块可以通过以下方式注册...数量和下载进度百分比, 下载完成行为: 程序可以订阅一个加载“模块完成”事件, 以处理模块加载和初始化完成后的额外事件 使用不同的依赖注入容器 一般在“快速入门”的示例中都是使用Unity依赖注入容器 虽然核心类库的代码仍然...“容器-未知”(container-agnostic) 但却使用了.Net4的MEF依赖注入容器插件。...这里有两个使用不同依赖注入容器的快速入门示例 MEF模块化: 此模块化快速入门示例使用MEF倚赖注入容器 Prism推荐使用MEF的声明式特性 使ModuleCatalog和MEF的ComposablePartsCatalog...(桌面版本) ---------------------------------------------------------------- 原文是个PDF中的一部分 在这里下载的 http://mef.codeplex.com

    1K10

    MEF发布SD-WAN标准

    为此,作为一个支持服务提供商社区标准化的行业组织MEF,周二在其年度MEF18会议上发布了一套广泛的软件定义广域网(SD-WAN)规范。 ?...MEF的目标是通过定义市场和标准来阻止这种混乱。MEF还为那些需要深入研究术语的真正极客发布了SD-WAN术语指南。...MEF的SD-WAN服务规范描述了应用感知,over-the-top WAN连接服务的要求,这些服务使用策略来确定如何通过网络基础设施转发应用流。...MEF表示这项计划针对四个目标: 减少市场对服务组件,核心功能和相关概念的困惑,从而节省宝贵的时间。...使服务提供商和技术提供商能够专注于提供一组核心通用功能,然后在该核心上发展,从而产生差异化产的品。

    75110

    .NET 基金会项目介绍-Chemistry Add-in for Word

    在最新版本中,您可以在编辑界面上,将分子结构采用 CML 或者 MDL Molfile 格式进行导入或导出。这就使得您可以在其他的文档中编辑这些结构,方便地共享给其他的用户或者放入其他的应用程序中。...其他项目地址 Akka.NET - 【Actor开发框架】 AngleSharp - 【浏览器引擎】 ASP.NET SignalR - 【Web实时通信框架】 ASP.NET MVC, Web API...and Web Pages Razor - 【Web开发框架】 ASP.NET Ajax Control Toolkit - 【Ajax开发工具】 ASP.NET Core - 【新时代Web开发框架...DNN Platform - 【CMS系统】 .NET Compiler Platform Roslyn - 【编译器】 .NET Micro Framework - 【嵌入式框架】 .NET SDK...Framework MEF, MEF2 - 【模块化工具库】 Microsoft Web Protection Library - 【Web防攻击工具库】 MimeKit - 【MIME处理工具库】

    59310

    .NET 基金会项目介绍-Orleans

    Orleans Orleans 为开发分布式、可伸缩的计算型应用程序提供了明显的方案,开发者无需学习如何进行复杂的并发处理以及其他的伸缩性相关的软件模式。...项目详情 官方网站 项目源码 许可证类型: MIT 项目联系人: Sergey Bykov 相关链接 参与贡献 参与讨论 开发文档 笔者简评 Orleans 的核心设计思路是基于 Actor 模式的并发编程模型...其他项目地址 Akka.NET - 【Actor开发框架】 AngleSharp - 【浏览器引擎】 ASP.NET SignalR - 【Web实时通信框架】 ASP.NET MVC, Web API...DNN Platform - 【CMS系统】 .NET Compiler Platform Roslyn - 【编译器】 .NET Micro Framework - 【嵌入式框架】 .NET SDK...Framework MEF, MEF2 - 【模块化工具库】 Microsoft Web Protection Library - 【Web防攻击工具库】 MimeKit - 【MIME处理工具库】

    58930

    .NET5 WPF进阶教程

    一、概要 本系列将继《.net wpf快速入门教程》带领大家了解wpf,帮助各位在初级向中级过渡的中掌握基本该具备的能力。...【自定义控件】,1.自定义控件概念讲解 2.自定义控件库如何使用。 【依赖项属性】,讲解依赖项属性,并基于该特性开发自定义控件。 【附加属性】,附加属性的讲解,并实战编写例子。...【Binding(二)】,关于绑定的语法补充,.net5版本新特性的介绍。 【Command】日常开发中必不可少会用到命令,比如button自带了Command和CommandParameter属性。...细心的小伙可能会发现并不是所有的控件都自带这样的属性,那么如何让“万物皆可Command”呢?...【RoutedEvent】,隧道事件和冒泡事件 【MEF】,MEF框架的介绍和实践 【项目结构】,基于MEF框架衍生出的项目结构讲解

    60210

    基于.NET平台常用的框架整理

    开源的.NET系统推荐: WTF:.net 核心的快速发展框架 KopSoft:开源免费WMS仓库管理系统 BCVP(Blog.Core&Vue Project):开箱即用的企业级前后端分离【 .NET...YiShaAdmin:基于.NET Core Web(mvc,缓存,多库)开发管理系统。 OrchardCore:在 ASP.NET 核心上构建模块化、多租户应用程序的应用框架。...关于 Excel Pdf Word Html Csv 的处理 : Magicodes.IE:导入导出通用库,支持Dto导入导出、模板导出、花式导出以及动态导出,支持Excel、Csv、Word、Pdf和...MEF(Managed Extensibility Framework):是一个用来扩展.NET应用程序的框架,可开发插件系统。...Cordova:PhoneGap贡献给Apache后的开源项目,是驱动PhoneGap的核心引擎。 网络通信和网络协议 SuperSocket:基于.NET轻量级的可扩展的Socket开发框架。

    3.1K20

    .NET 基金会项目介绍-AngleSharp

    AngleSharp AngleSharp 是一款.Net实现的浏览器引擎核心,它为.Net应用程序提提供了现代Web相关的基础工具集,它以 .NET Standard 类库的形式进行分发。...不过这其实是由于项目立意的不同所导致的: AngleSharp 定位是一套浏览器引擎核心的实现,而 HtmlAgilityPack 就是为了实现 HTML 的转换和 DOM 操作。...内存大户双人组,注意释放 如果从浏览器核心的角度而言: Chromium 是一套相当完整的浏览器框架,当然这与 AngleSharp 的定位还是不同的。...其他项目地址 Akka.NET - 【Actor开发框架】 AngleSharp - 【浏览器引擎】 ASP.NET SignalR - 【Web实时通信框架】 ASP.NET MVC, Web API...Framework MEF, MEF2 - 【模块化工具库】 Microsoft Web Protection Library - 【Web防攻击工具库】 MimeKit - 【MIME处理工具库】

    91210

    Caliburn.Micro Bootstrapper及IOC容器配置

    而我们在Bootstrapper中只在DisplayRootViewFor()中给定了一个主ViewModel的类型,那么CM是如何找到找到ViewModel和View并创建实例的?...这些问题都可以通过配置MEF等作为IOC容器后解决。 CM获得View实例的方式 在配置IOC容器之前,我们先看看,CM获取实例的方式。清楚的知道CM在内部是如何使用IOC的,才能更好的配置IOC。...是一个.net的插件框架,也可以作为一个依赖注入容器(IOC)使用。...我通常就用MEF作为CM的IOC容器。在MEF中所有export部件都会被作为插件导入到container中,通过container也可以访问每个export对象。...也就是说我们把MEF作为IOC容器的时候,主要使用export部件相关的功能。不了解MEF的话,请了解一下MEF再看以下内容会比较容易理解。

    91130
    领券