MEF CompositionException - PullRequest
       0

MEF CompositionException

3 голосов
/ 30 ноября 2010

У меня есть исключение CompositionException с этим сообщением: «ComposablePart типа« SomeService »не может быть перекомпонован, потому что он находится в недопустимом состоянии. Он может быть перекомпонован, только если он уже был полностью просмотрен или составлен».

Исключение выдается этим кодом:

public class SomeService : ISomeService
{       
   [Import(typeof(ISomeType))]
   public ISomeType SomeType { get; set; }

   public SomeService()
   {
      Container.ComposeParts(this);
   }
}

но с этим все в порядке:

public class SomeService : ISomeService
{       
   [Import(typeof(ISomeType))]
   public ISomeType SomeType { get; set; }

   public SomeService()
   {
      this.SomeType = Container.GetExportedValue<ISomeType>();
   }
}

У меня есть этот код "Container.ComposeParts (this)" в других местах, и он работает, но здесь это не так.

Я не нашел ничего интересного после поиска в Google с «невозможно перекомпоновать, потому что он в недопустимом состоянии».

Что означает это сообщение? Спасибо!

1 Ответ

1 голос
/ 30 ноября 2010

Это может быть связано с тем, что вы используете CompositionContainer из нескольких потоков. Ты что, черт побери?

...