Если вы импортируете AggregateCatalog, вы можете получить к нему доступ из вашей ViewModel (или из того места, куда вы хотите добавить его.
[Import()]
private AggregateCatalog _aggregateCatalog;
...
private void SomeFunc()
{
_aggregateCatalog.Catalogs.Add(...);
}
ПРИМЕЧАНИЕ. Если сборка повлияет на какие-либо операторы Import или ImportMany, они должны разрешить перекомпоновку, иначе вы получите исключение. Например, если ваша сборка содержит другой
IFooService
экспорт ...
//Exception Thrown
[ImportMany(typeof(IFooService))]
private IEnumerable<IFooService> _myFooServices;
//No Exception Thrown
[ImportMany(typeof(IFooService), AllowRecomposition = true)]
private IEnumerable<IFooService> _myFooServices;
ПРИМЕЧАНИЕ. Вы активируете
OnImportsSatisfied
, если вы снова внедрили интерфейс
IPartImportsSatisfiedNotification
, поэтому убедитесь, что у вашего приложения из-за этого нет проблем.