如何获取作为参数传递的变量的名称

时间:2016-03-10 13:01:24

标签: c# reflection

是否可以获取作为参数传递的变量名称?

当你让我解释为什么我需要这个时,这是我的解释。我正在用硒建造一个测试用framweork。这是我需要作为参数传递的变量名称的示例。

我有一个带有字段的页面对象:

[FindsBy(How = How.CssSelector, Using = "input[name='sample']")]
private IWebElement SampleButton { get; set; }

我点击它就像:

Click(SampleButton, nameof(SampleButton));

以上是点击功能的主体:

public void Click(IWebElement element, string elementName)
        {
            element.Click();
            Logger.Log("Click: '{0}'", elementName);
        }

结果:点击了传递给函数的按钮,在日志文件中我有“Click:SampleButton”

现在我正在寻找如何更改点击功能,如下所示:

Click(SampleButton)

看起来像是:

public void Click(IWebElement element)
        {
            element.Click();
            Logger.Log("Click: '{0}'", getNameOfVariableThatWasPassedToThisParameter(element));
        }

getNameOfVariableThatWasPassedToThisParameter(element)的预期结果为string = "SampleButton"

我正在使用像SendKeys(SampleInput, nameof(SampleInput), valueToSet)之类的东西,它设置值并记录它的设置位置。所以我只想摆脱 nameof(SampleInput)。我想减少需要传递给函数的变量数量。

0 个答案:

没有答案