Получение следующего по вызову hostContainer.ComposeParts()
:
System.ComponentModel.Composition.ChangeRejectedException было необработанным. Message = Состав остается неизменным.Изменения были отклонены из-за следующих ошибок: Композиция вызвала единственную ошибку композиции.Основная причина приведена ниже.Для получения более подробной информации просмотрите свойство CompositionException.Errors.
1) Не найдено допустимых экспортов, соответствующих ограничению '((exportDefinition.ContractName == "ModLibrary.IDataHandler") AndAlso (exportDefinition.Metadata.ContainsKey ("ExportTypeIdentity") И также "ModLibrary.IDataHandler" .Equals (exportDefinition.Metadata.get_Item ("ExportTypeIdentity")))) ', недопустимые экспортные данные могут быть отклонены.
В результате: Невозможно установить импорт' ModAppWorks.Host.DataHandler (ContractName = "ModLibrary.IDataHandler") 'в части' ModAppWorks.Host '.Элемент: ModAppWorks.Host.DataHandler (ContractName = "ModLibrary.IDataHandler") -> ModAppWorks.Host
Source = System.ComponentModel.Composition StackTrace: в System.ComponentModel.Composition.CompositionResomomCom элементов Atom.attribuParts) в ModAppWorks.Host.Compose () в C: \ Projects \ ModAppWorks_2 \ HostProgram.cs: строка 83 в ModAppWorks.Host.Run () в C: \ Projects \ ModAppWorks_2 \ HostProgram.cs: строка 49 в ModAppWorks.Program.Main () в C: \ Projects \ ModAppWorks_2 \ HostProgram.cs: строка 25 в System.AppDomain._nExecuteAssembly (сборка RuntimeAssembly, аргументы String []) в System.AppDomain.ExecuteAssembly (сборка строк FileFile, сборка Evidence.lySecurity, String [] args) в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly () в System.Threading.ThreadHelper.ThreadStart_Context (состояние объекта) в System.Threading.ExecutionContext.Run (вызов метода ExecutionContext, обратный вызов состояния объекта, объектный возврат контекста, контекстный вызовignoreSyncCtx) в System.Threading.ExecutionContext.Run (ExecutionContext executeContext, ContextCallback callback, состояние объекта) в 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 для приложения Host.
Есть предложения, что я делаю не так?