如何确定是否从.NET中调用属性(监视,即时窗口等)?

时间:2016-11-30 11:21:49

标签: .net visual-studio properties

是否可以确定对属性的调用是来自IDE,即来自监视窗口,即时窗口等,而不是来自代码的正常调用?

Public ReadOnly Property Foo() As Object
  Get
    If CalledFromIDE Then
      'Do something
    Else
      'Do something different
    End If
  End Get
End Property

我的第一个想法是检查堆栈跟踪,但IDE似乎直接挂接到属性而不在堆栈上添加任何内容。

编辑

至于问题背后的原因,我试图使用MS Coded UI框架编写一些自动WinForms测试,但调试体验是一场噩梦。 UI Test对象公开的属性不断超时(导致调试器分离),有些则完全崩溃了调试器。因此,我采用了here描述的类似方法,因为我已经在MS对象周围编写了一个包装器(隐藏了它的属性),而是在一个单独的线程中用超时来评估属性(将任何无法评估的属性列入黑名单。然后,成功的属性将在包装器中公开。

这极大地改善了调试体验,但是当在非调试情况下调用属性时,我希望它们能够正常评估(即没有超时)。

0 个答案:

没有答案