这是我想要从中返回类对象的通用方法
public class TestBase
{
public T NavigateandReturntheObject<T>() where T : new()
{
//do navigate to page stuff and return the page object
//previously it was - return new T();
//Now i want to do something like this
return PageObjectBase<T>.PageObject;
}
}
上面的方法调用下面的静态泛型类,它将处理特定类的对象创建
public static class PageObjectBase<T> where T : class, new()
{
private static T singleTonObject;
public static T PageObject
{
get
{
return InstanceCreation();
}
}
public static T InstanceCreation()
{
if (singleTonObject == null)
{
singleTonObject = new T();
}
return singleTonObject;
}
}
如何从我的测试基类调用 PageObject 属性,请提供建议。注意:我已经搜索了论坛并找到了与泛型方法相关的答案,以调用另一个泛型方法。通过反思也可以实现这一点。我们也可以在我的情况下使用反射吗?如果是这样,我们该怎么做。
您可以将另一个约束 'class' 添加到 NavigateandReturntheObject
public T NavigateandReturntheObject<T>() where T : class,new()
完整的代码。
public class TestBase
{
public T NavigateandReturntheObject<T>() where T : class,new()
{
//do navigate to page stuff and return the page object
//previously it was - return new T();
//Now i want to do something like this
return PageObjectBase<T>.PageObject;
}
}
演示代码
public class TestClass
{
public string Name{get;set;}
public TestClass()
{
Name = "Dummy Name";
}
}
var testBase = new TestBase();
var sample = testBase.NavigateandReturntheObject<TestClass>();
Console.WriteLine(sample.Name);
输出
Dummy Name