PRISM属性注入失败

时间:2011-08-30 09:06:17

标签: silverlight prism

在我的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 个答案:

答案 0 :(得分:1)

我认为这是因为ExceptionHelper属性是通过SetUp方法从构造函数中调用的,并且在构造函数执行之后才能调用注入的属性。