4

我目前正在使用 MEF 扫描/编写我的应用程序的扩展。我想将默认创建策略更改为非共享(代替共享),但要让它通过属性覆盖创建策略。换句话说,如果我不指定导出的创建策略,我希望 MEF 使用非共享。

我以前的实现不再适用于我,因为它改变了所有导入所需的创建策略。因此,如果我覆盖创建策略,则导出不会组合。

我四处搜索,我能得到的最接近的是新的 RegisrationBuilder,但我正在使用 VS2010 中的 .NET 4(所以 MEF 1)。我也想不出使用 ExportProviders 的方法。

任何帮助是极大的赞赏; 提前致谢!

4

1 回答 1

0

我设法创建了一个MEF 包装器,我将其用作应用程序引导程序。在我使用 MEF 的项目中,我有 mu 自定义属性,用于控制脚趾实例化模式。属性的自定义实现将是:

[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)]
public class BusinessLogicImportAttribute : ConstraintImportAttribute
{
    public BusinessLogicImportAttribute()
        : base(typeof(IBusinessController))
    {
        base.RequiredCreationPolicy = RequiredCreationPolicy = CreationPolicy.NonShared;
    }
}
于 2013-11-25T19:29:32.447 回答