在我的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方法中。如果我使用它,则不会记录和处理测试异常。
我在这里明显遗漏了什么 - 有什么想法吗?
答案 0 :(得分:1)
我认为这是因为ExceptionHelper属性是通过SetUp方法从构造函数中调用的,并且在构造函数执行之后才能调用注入的属性。