表单设计师的MEF错误?

时间:2012-11-01 20:43:30

标签: c# .net-4.0 mef

我正在使用MEF,我的插件目录为c:\dev\plugins

我有一个表单,但是当我打开它时,我有以下错误:

  

该组合物产生单一组成错误。根本原因如下。查看CompositionException.Errors属性以获取更多详细信息。 1)导出'Helper(ContractName =“IHelper”)'不能分配给'IHelper'类型。导致:无法在部分'Manager'上设置import'helper(ContractName =“IHelper”)'。元素:助手(ContractName =“IHelper”) - >经理`

我有两个包含相同导出的程序集,但我使用DirectoryCatalog一次只加载其中一个。

此错误似乎只在设计师中显示。当我运行代码时,我没有得到异常,应用运行正常。设计师确实给了我Ignore and Continue的选项,但是我做了一次而且失败了,所以我退缩了。

public class Manager
    {

        private static readonly Manager instance = new Manager();

        public static IHelper Helper { get { return Manager.instance.helper; } }

        [Import(typeof(IHelper))]
        internal IHelper helper { get; set; }

        private Manager()
        {

           using (DirectoryCatalog catalog = 
                                    new DirectoryCatalog(@"c:\dev\plugins"))
           {
               using (CompositionContainer container = 
                                              new CompositionContainer(catalog))
               {
                      container.ComposeParts(this);
               }
            }
        }
     }

public interface IHelper
    {
        string LabelText { get; }
    }


[Export(typeof(IHelper))]
public class SpecificHelper : IHelper
{
    public string LabelText
    {
         get { return "Id:"};
    }
}

0 个答案:

没有答案