我在为我的扩展方法获取调用者方面遇到了一点问题。
在互联网上搜索,但找不到与我的问题类似的任何东西。 这个问题是千钧一发...
我有一个扩展方法:
public static void TabToNextField(this FrameworkElement i, FrameworkElement nextField)
{
i.KeyPress(Keys.Tab);
var isNextFieldFocused = nextField.GetProperty<bool>("IsFocused");
if (!isNextFieldFocused)
{
//Taborder is incorrect. Next field wasn't focused!
//This wont work since 'this' can't be used in a static context.
var currentProcedure = this.GetType().Name;
var fromField = i.AutomationId;
var toField = nextField.AutomationId;
//Log to file..
}
}
这用于一些自动化测试,以验证下一个字段是否具有焦点以及选项卡顺序是否正确。但是对于应该记录的错误,我想获取调用者的类名以获得准确的报告,我们可以直接看到错误在我们的应用程序中的位置。
由于所有控件都使用 AutomationId,因此控件很容易识别..
所以问题是:如何从这个扩展方法中获取调用者方法?