相关疑难解决方法(0)

.NET:在静态方法中确定"this"类的类型

在我可以使用的非静态方法中this.GetType(),它将返回Type.如何Type在静态方法中获得相同的内容?当然,我不能只写,typeof(ThisTypeName)因为ThisTypeName只在运行时才知道.谢谢!

.net c# static-methods types

92
推荐指数
4
解决办法
6万
查看次数

从扩展方法获取调用者方法

我在为扩展方法获取调用方时遇到了一些问题。

搜索了互联网,但找不到与我的问题类似的任何东西。 这个问题是一个紧急电话...

我有一个扩展方法:

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..
   }
}
Run Code Online (Sandbox Code Playgroud)

这用于一些自动化测试,以验证nextfield是否具有焦点并且制表符顺序正确。但是对于应该记录的错误,我想获取调用方的类名称,以获取准确的报告,我们可以直接查看错误在应用程序中的位置。

由于所有控件都使用AutomationId,因此控件易于识别。

所以问题是:如何从该扩展方法中获取调用者方法?

.net c#

2
推荐指数
2
解决办法
1392
查看次数

标签 统计

.net ×2

c# ×2

static-methods ×1

types ×1