使用具有非共享创建策略的MEF(Managed Extensibility Framework)合成导出值,但不将其指定为属性,意味着我们可以通过MEF框架来创建和导出非共享的对象实例,并且这些实例不会被自动注入到属性中。
MEF是一个用于构建可扩展应用程序的.NET库,它允许开发人员通过插件方式将功能模块集成到应用程序中。在使用MEF时,我们可以使用[Export]属性将对象标记为可导出的,并使用[Import]属性将其标记为可导入的。这样,MEF框架会自动处理对象的创建和注入。
对于具有非共享创建策略的MEF合成导出值,我们可以通过以下步骤实现:
[Export(typeof(IMyService))]
[PartCreationPolicy(CreationPolicy.NonShared)]
public class MyService : IMyService
{
// 实现功能的代码
}
[Import]
public IMyService MyService { get; set; }
var catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly());
var container = new CompositionContainer(catalog);
container.ComposeParts(this);
这样,MEF框架会根据导出值的创建策略,在需要时创建非共享的对象实例,并将其注入到相应的导入属性中。
非共享创建策略的MEF合成导出值适用于以下场景:
腾讯云提供了一系列与云计算相关的产品,其中包括云服务器、云数据库、云存储等。具体推荐的产品和产品介绍链接地址可以根据实际需求和场景来选择,可以参考腾讯云的官方文档或咨询他们的客服人员获取更详细的信息。
领取专属 10元无门槛券
手把手带您无忧上云