0
我正在尝试在Moq中使用IHTMLSelectElement。我的代码是这样的:Moq - 对象类型转换和比较
// create a select element
var selectElem = new Mock<IHTMLSelectElement>(MockBehavior.Strict);
// set the select element
selectElem.Setup(f => f.length).Returns(20);
selectElem.Setup(f => f.name).Returns("selectElem");
// get the object
IHTMLSelectElement ihse = selectElem.Object;
然后在我的生产代码的方法,我做的事:
var selectEle = (element as mshtml.IHTMLSelectElement);
if (selectEle != null)
{
我的问题是,类型转换不起作用,因为使用起订量时的类型实际上是: Castle.Proxies.IHTMLSelectElementProxy_1
将此转换为IHTMLSelectElement将返回一个空对象。
关于如何使这项工作有任何想法?
你的代码肯定应该工作,因为你的接口类型的模拟对象是。 – 2012-03-05 18:59:06
但'IHTMLSelectElementProxy_1'继承自'IHTMLSelectElementProxy',对吧?你可以做'IHTMLSelectElement ihse = selectElem.Object;'。这让我觉得演员不是你的问题。 – 2012-03-05 18:59:14
你可以显示'ihse'模拟注入你的生产类的代码吗? – 2012-03-05 19:08:00