在呼叫hostContainer.ComposeParts()时接收以下信息
System.ComponentModel.Composition.ChangeRejectedException未处理的
Message=The组合保持不变。由于以下错误,更改被拒绝:组合产生了单个组合错误。根本原因如下。查看CompositionException.Errors属性以获得更详细的信息。
1)没有发现匹配约束‘(exportDefinition.Metadata.ContainsKey("ExportTypeIdentity") == "ModLibrary.IDataHandler") AndAlso无效导出可能已被拒绝的有效导出。
结果:无法在部件'ModAppWorks.Host‘上设置导入'ModAppWorks.Host.DataHandler (ContractName=“ModLibrary.IDataHandler”)。元素: ModAppWorks.Host.DataHandler (ContractName="ModLibrary.IDataHandler") -> ModAppWorks.Host
System.ComponentModel.Composition.CompositionResult.ThrowOnErrors(AtomicComposition StackTrace:在System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.Compose(CompositionBatch批处理)在System.ComponentModel.Composition.Hosting.CompositionContainer.Compose(CompositionBatch批处理)在System.ComponentModel.Composition.AttributedModelServices.ComposeParts(CompositionContainer容器上,( System.AppDomain._nExecuteAssembly(RuntimeAssembly attributedParts)在ModAppWorks.Host.Compose() in C:\Projects\ModAppWorks_2\HostProgram.cs:line 83 at ModAppWorks.Host.Run() at ModAppWorks.Host.Run() C:\Projects\ModAppWorks_2\HostProgram.cs:line 49 at ModAppWorks.Program.Main() at C:\Projects\ModAppWorks_2\HostProgram.cs:line 25 at C:\Projects\ModAppWorks_2\HostProgram.cs:line汇编,String[] args) at System.AppDomain.ExecuteAssembly(String assemblyFile,( Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() at System.Threading.ThreadHelper.ThreadStart_Context(Object state )在System.Threading.ExecutionContext.Run(ExecutionContext executionContext ),ContextCallback回调( ContextCallback回调),Object状态( Object state)在System.Threading.ExecutionContext.Run(ExecutionContext executionContext (System.Threading.ExecutionContext.Run(ExecutionContext executionContext),ContextCallback回调(ContextCallback回调,Object state) ( 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接口。此外,构建直接写入主机应用程序的扩展目录。
对于我做错了什么有什么建议吗?
发布于 2010-12-11 21:13:01
我开始怀疑构造函数不能调用带有参数的基本构造函数。我删除了对: base(param1, param2)的调用,类将导入。
编辑
好的,对此进行了更多的测试,似乎,您的类可以向基构造函数提供参数,只要基类没有继承要导入到主机的部件。
https://stackoverflow.com/questions/4418872
复制相似问题