PRISM Property инъекция не удалась - PullRequest
0 голосов
/ 30 августа 2011

В моем приложении Silverlight RIA я могу успешно внедрить класс ExceptionHelper с помощью инжектора конструктора:

[InjectionConstructor]
public CDashCatDataService(IExceptionHelper exceptionHelper)
{
  _exceptionHelper = exceptionHelper;
  SetUp();
}

void SetUp()
{
  if (_context == null)
  {
    try
    {
      throw new Exception("this is a test exception");
      _context = new CDASHDomainContext();          
    }
    catch (Exception ex)
    {
      _exceptionHelper.HandleException(ex, string.Format("{0} -> {1}", GetType().FullName, "Setup"));
    }
  }
  Context = _context;
}

Метод SetUp успешно регистрирует и обрабатывает исключение теста.

Однако я не могу 'Это не сработает, если я вместо этого использую инъекцию свойства:

[Dependency]
public IExceptionHelper ExceptionHelper { get; set; }

, а затем использую

catch (Exception ex)
    {
      ExceptionHelper.HandleException(ex, string.Format("{0} -> {1}", GetType().FullName, "Setup"));
    }

в методе SetUp.Если я использую это, тестовое исключение не регистрируется и не обрабатывается.

Я явно что-то здесь упускаю - есть идеи?

1 Ответ

1 голос
/ 08 марта 2012

Я думаю, это потому, что свойство ExceptionHelper вызывается из конструктора через метод SetUp, и вы не можете вызывать внедренные свойства, пока не будет выполнен конструктор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...