c# - 从对象中读取类数据?

标签 c# visual-studio-2012 selenium selenium-webdriver

我的 selenium 项目中有一个名为 Document DocumentViewer 的类,它包含名为 CancelAndClose 的方法,它返回一个对象。此方法由四个不同的对象访问。因此,使用此方法 的主要思想是返回调用此方法对象(带有参数)的确切类型。

这是 DocumentViewer 类的主体:

public class DocumentViewer
{
    private IWebDriver _driver;

    private object _startedFrom;

    public DocumentViewer(IWebDriver driver, object startedFrom)
    {
        _driver = driver;
        _startedFrom = startedFrom;
        //CODE TO CHECK WHETHER IS DRIVER IS IN THE RIGHT PAGE
        }
    }

    public object CancelAndClose()
    {
        //I USE A CUSTOM METHOD FOR FINDING THE RIGHT WINDOW HANDLE AND RETURN IT BELOW
        return new OneOfTheFourClasses(_driver);
    }
}

所以我的问题是,如何找到对象 _startedFrom 的原始类并将其设置在 OneOfTheFourClasses 的位置?

编辑:这个 DocumentViewer 是一个页面对象,也是 TheFourClasses

最佳答案

免责声明:我不知道/没有使用过 Selenium,所以我不知道您尝试做的事情是否“正确”(或理智等),但我确实可以回答你的问题...

要找出它的类型,您可以简单地调用 _startedFrom.GetType()

要构造另一个相同类型的对象,需要使用反射。

var type = _startedFrom.GetType();
var ctor = type.GetConstructor(new Type[] { typeof(IWebDriver) });
var newObject = ctor.Invoke( new object[] { _driver } );

关于c# - 从对象中读取类数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20907626/

相关文章:

c# - 确保用字符串中的数字拆分逗号分隔的字符串

sql - 如何使用 Visual Studio Express 2013 从 sql-server 2008 导入数据到 excel

selenium - 如何正确使用XPath previous-sibling

c# - 将 .NET 程序集引用解析为不同的名称?

c# - Azure TableEntity - Hook 读/写操作

c# - 如何根据其值更改 WPF 数据网格中单元格的背景颜色

c# - 为什么我在安装 VS2012/.Net 4.5 后在 .Net 4.0 Assembly.GetCustomAttributes 上出现 ExecutionEngineException?

asp.net - 无法加载DLL 'VSPerf110.dll'

javascript - Python selenium 如何使用参数在 JavaScript 元素上执行execute_script

javascript - 即使 javascript 在控制台中返回值,getEval 在 Selenium 上返回 null