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

MEF Lazy ImportMany with Creationpolicy.NonShared

MEF(Managed Extensibility Framework)是一种用于构建可扩展应用程序的.NET框架。它提供了一种简单的方式来实现插件式架构,使开发人员能够轻松地添加、移除和扩展应用程序的功能。

MEF中的Lazy ImportMany with CreationPolicy.NonShared是一种用于延迟加载和导入多个非共享组件的机制。它允许在需要时动态地加载和实例化多个组件,并且这些组件是非共享的,即每次导入都会创建一个新的实例。

这种机制的优势在于:

  1. 延迟加载:Lazy ImportMany意味着组件在需要时才会被加载,而不是在应用程序启动时就加载所有组件。这可以提高应用程序的启动速度,并减少内存占用。
  2. 导入多个组件:CreationPolicy.NonShared允许导入多个组件,而不仅仅是单个组件。这使得应用程序可以根据需要使用不同的组件实现。
  3. 非共享实例:每次导入都会创建一个新的实例,这意味着每个组件实例都是独立的,不会共享状态。这可以避免潜在的并发问题和副作用。

Lazy ImportMany with CreationPolicy.NonShared适用于以下场景:

  1. 插件式架构:当应用程序需要支持插件式架构,并且需要动态地加载和使用多个组件时,可以使用这种机制。
  2. 动态扩展功能:当应用程序需要根据用户需求动态地扩展功能时,可以使用Lazy ImportMany来加载和使用不同的组件实现。
  3. 多样化的实现:当应用程序需要使用不同的组件实现来满足不同的需求时,可以使用CreationPolicy.NonShared来确保每个实例都是独立的。

腾讯云提供了一系列与云计算相关的产品,其中与MEF Lazy ImportMany with CreationPolicy.NonShared相关的产品可能是腾讯云的云函数(Serverless Cloud Function)服务。云函数是一种无服务器计算服务,可以根据需要动态地运行代码,并且每次运行都会创建一个新的实例。您可以使用云函数来实现延迟加载和导入多个非共享组件的需求。

腾讯云云函数产品介绍链接地址:https://cloud.tencent.com/product/scf

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

相关·内容

.NET Core 和 .NET Framework 中的 MEF2

更新于 2018-09-01 00:13 MEF,Managed Extensibility Framework,现在已经发布了三个版本了,它们是 MEFMEF2。...---- MEFMEF2 其实微软发布了四个版本的 MEF: 随着 .NET Framework 4.0 发布,微软称之为 MEF 随着 .NET Framework 4.5 发布,微软让它更好用了...里的 MEF2 性能太差,NuGet 版的 MEF2 功能太少,于是自己又写了一个,微软称之为 VS-MEF 对于第一代的 MEF,我们这里就完全不说了,性能又差功能又少,没有利用价值。...IEnumerable/Lazy 如果属性或字段是集合类型,可以使用 [ImportMany] 来注入集合(如果 Export 有多个)。...如果属性或字段是 Lazy 类型,那么并不会立即注入,而是在访问到 Lazy.Value 时才获取到实例(如果此时的创建过程由容器处理,那么第一次访问 Value 时才会创建)。

1.4K10

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

实际上MEF提供了发现和组合的能力使你的应用程序可以加载扩展,为运行时的可扩展性提供了一种简单的解决方法:  MEF为宿主应用提供了一种标准的途径来暴露自身并使用外部扩展。...扩展之间也可以存在依赖关系,MEF则会自动将它们按照正确的顺序进行调用。MEF还提供了一些用来定位和加载可用扩展的方法。MEF允许使用附加元数据对扩展进行标记,从而达到易于丰富的查询和筛选的目的。...MEF原理上很简单,找出有共同接口的导入、导出。然后找到把导出的实例化,赋给导入。说到底MEF就是找到合适的类实例化,把它交给导入。...5、下面我们来看一下一个接口被多个类实例化 当一个接口被多个类实例化时,用ImportMany 声明,具体如下 [ImportMany] public IEnumerable HelloWord...System.ComponentModel.Composition.Hosting; using System.IO; namespace MEFConsoleApplication { [Export] class Program { [ImportMany

1.7K21
  • .Net5中WebApi使用MEF2框架的使用

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

    96830

    无特性的 MEF 配置方法

    在本文中,我首先介绍一些使用 MEF 等系统的原因。如果您是一个经验丰富的 MEF 开发人员,则可以跳过此部分。...不过,我的约定中似乎缺少一些内容: 在任何时候,在配置 WeatherServiceView 时,我都不需要添加 ImportMany 特性或等效的约定。...这就是 RegistrationBuilder 的神奇之处,它指明如果您的参数上具有 IEnumerable,则它一定是 ImportMany,而无需明确指定它。...在使用端,我现在需要将一个属性添加到所有 IWeatherServiceProvider 实现中,如下所示: public IEnumerable<Lazy<string, IServiceDescription...经验表明,无论什么代码“正常工作”,在开始遵循指定的约定时,您可以获得在应用程序中使用 MEF 的好处,而无需亲自编写一行 MEF 代码。

    1.3K50

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

    前言 Managed Extensibility Framework(MEF)是.NET平台下的一个扩展性管理框架,它是一系列特性的集合,包括依赖注入(DI)等。...MEF为开发人员提供了一个工具,让我们可以轻松的对应用程序进行扩展并且对已有的代码产生最小的影响,开发人员在开发过程中根据功能要求定义一些扩展点,之后扩展人员就可以使用这些扩展点与应用程序交互;同时MEF...MEF方式 MEF 提供一种通过“组合”隐式发现组件的方法。 MEF 组件(称为“部件-Part”)。...MEF原理上很简单,找出有共同接口的导入、导出。然后找到把导出的实例化,赋给导入。说到底MEF就是找到合适的类实例化,把它交给导入。...public string GetTestString() { return "Hello World Text"; } } [ImportMany

    70130

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

    前言 Managed Extensibility Framework(MEF)是.NET平台下的一个扩展性管理框架,它是一系列特性的集合,包括依赖注入(DI)等。...MEF为开发人员提供了一个工具,让我们可以轻松的对应用程序进行扩展并且对已有的代码产生最小的影响,开发人员在开发过程中根据功能要求定义一些扩展点,之后扩展人员就可以使用这些扩展点与应用程序交互;同时MEF...MEF方式 MEF 提供一种通过“组合”隐式发现组件的方法。 MEF 组件(称为“部件-Part”)。...MEF原理上很简单,找出有共同接口的导入、导出。然后找到把导出的实例化,赋给导入。说到底MEF就是找到合适的类实例化,把它交给导入。...public string GetTestString() { return "Hello World Text"; } } [ImportMany

    67820

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券