2011-08-30 63 views
0

在我的Silverlight應用程序RIA我可以通過構造函數注入成功注入的ExceptionHelper類:PRISM物業注射失敗

[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; 
} 

設置方法成功登錄並處理測試例外。

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

,然後使用

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

不過,如果我使用屬性注入,而不是我不能得到這個工作。如果我使用這個,測試異常不會被記錄和處理。

我很明顯缺少這裏的東西 - 任何想法?

+0

爲了回答我自己的問題,我認爲這是因爲ExceptionHelper屬性是通過SetUp方法從構造函數中調用的,並且只有在構造函數執行後才能調用注入的屬性。 – pilsdumps

回答

1

我認爲這是因爲ExceptionHelper屬性是通過SetUp方法從構造函數中調用的,並且在構造函數執行之後才能調用注入的屬性。