拡張メソッドの呼び出し元を取得するのに少し問題があります。
インターネットを検索しましたが、私の問題に似たものは見つかりませんでした。 この質問は危機一髪でした...
私は拡張メソッドを持っています:
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 を使用しているため、コントロールは簡単に識別できます。
質問は次のとおりです。この拡張メソッドから呼び出し元メソッドを取得するにはどうすればよいですか?