收到以下电话 hostContainer.ComposeParts():

system.componentmodel.composition.changerejectedexception是未经用来的消息=该构图保持不变。由于以下误差而拒绝了这些变化:组成产生了单个组成误差。根本原因在下面提供。查看CoptionException.Errors属性以获取更多详细信息。

1)没有发现与约束'((exportDefinition.ContractName ==“ modlibrary.idatahandler”)匹配的有效导出。 get_item(“ exportTypeidentity”))))'),可能已被拒绝。

结果:无法将import'modappworks.host.datahandler(合同名称=“ modlibrary.idatahandler”)'在'modappworks.host'部分上设置。元素:modappworks.host.datahandler(contractName =“ modlibrary.idatahandler”) - > modappworks.host

Source=System.ComponentModel.Composition StackTrace: at System.ComponentModel.Composition.CompositionResult.ThrowOnErrors(AtomicComposition atomicComposition) at System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.Compose(CompositionBatch batch) at System.ComponentModel.Composition.Hosting.CompositionContainer. componentModel.composition.attributedmodelservices.composeparts(compositionContainer容器,object [] attributedParts)在c: projects projects modappworks_2 hostpragragram:lospprogragram:lodappworks.com: .run()在C: Projects ModAppworks_2 hostprogram.cs:c: projects modappworks_2 hostprogram.cs中的Modappworks.program.main()in Modappworks.program.main()in ost 49 in system._appdomain.__nexecuteassembly(runtimeasemeassemeassembly Assemplysbly,Applosembly,runtimblysbly,Applobly Assembly,Applobly, string [] args)在system.appdomain.executeassembly(string assemblyFile,证据汇编,字符串,string [] args)at microsoft.visualstudio.hostingprocess.hostprocess.hostproc.runusersersassembly() ing.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System .threading.threadhelper.threadstart()Innerexception:

导入摘要:

[Import(typeof(IDataHandler))]
public Lazy<IDataHandler> DataHandler { get; set; }

但是,datahandler被定义为:

[Export(typeof(IDataHandler))]
public class DataAgent : DataProvider<SqlConnection, SqlDataReader>, IDataHandler
{
    // contains an empty public ctor passing ctor parameters to DataProvider
}

DataProvider是一个抽象类,它也继承了Idatahandler并实际实现Idatahandler接口。另外,构建直接写入主机应用程序的 Extensions目录。

关于我做错了什么的建议?

有帮助吗?

解决方案

我开始怀疑构造函数无法调用带有参数的基本构造函数。我删除了电话 : base(param1, param2) 班级将导入。

编辑

好的,对此进行了更多测试,似乎您的类可以为基本构造函数提供参数,只要基类没有继承要导入到主机的零件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top