从对象中读取类数据?

时间:2014-01-03 15:56:04

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

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

以下是method类的主体:

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

2 个答案:

答案 0 :(得分:2)

免责声明:我不知道/没有使用Selenium所以我不知道你想要做的是“正确”(或理智等)或不是,但我可以字面意思回答你的问题......

要查找其类型,您只需拨打_startedFrom.GetType()

即可

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

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

答案 1 :(得分:2)

您可以使用GetType()

public DocumentViewer(IWebDriver driver, object startedFrom)
{
    _driver = driver;
    _startedFrom = startedFrom;

    //CODE TO CHECK WHETHER IS DRIVER IS IN THE RIGHT PAGE
    Type objectType = _startedFrom.GetType();
}