MEF Сообщение об ошибке - PullRequest
1 голос
/ 15 мая 2010

Может кто-нибудь объяснить это сообщение об ошибке:

Состав остается без изменений. изменения были отклонены из-за следующие ошибки: Композиция произвел единственную ошибку композиции. Основная причина приведена ниже. Просмотрите CompositionException.Errors недвижимость для более подробной информация.

1) Не найдено действительного экспорта, который соответствовать ограничению '((exportDefinition.ContractName == "Silverbits.ApplicationServices.ApplicationServicesManager") А также (ExportDefinition.Metadata.ContainsKey ( "ExportTypeIdentity") А также "Silverbits.ApplicationServices.ApplicationServicesManager" .equals (exportDefinition.Metadata.get_Item ( "ExportTypeIdentity")))), неправильный экспорт мог быть отвергнуто.

Результат: невозможно установить импорт «Silverbits.Applications.SilverbitsApplication.ApplicationServices (ContractName = "Silverbits.ApplicationServices.ApplicationServicesManager")» на части "Framework.App". Элемент: Silverbits.Applications.SilverbitsApplication.ApplicationServices (ContractName = "Silverbits.ApplicationServices.ApplicationServicesManager") -> Framwork.App

Ответы [ 2 ]

1 голос
/ 21 мая 2010

Хотя класс ApplicationServicesManager может быть доступен и помечен атрибутом [Export], эта часть все еще может быть отклонена, поскольку она сама выполняет импорт, который не может быть выполнен.

Взгляните на раздел Диагностика проблем с составом в документации MEF.

1 голос
/ 15 мая 2010

Это выглядит примерно так:

[Export]
public class ApplicationServicesManager
{
}

или как это:

public class SomeClass
{
    [Export]
    public ApplicationServicesManager AppServices { get; private set; }
}

Но он не может найти ни одного в объеме вашего экспорта. Если вы экспортируете его из свойства или поля, убедитесь, что объект, экспортирующий его, был составлен с контейнером. Если это экспорт класса и этот класс присутствует в другой сборке, убедитесь, что сборка находится в каталоге контейнера.

...