[英]Two dimensional object array return type - NSubstitute
我得到了一個演員異常
System.InvalidCastException:無法將類型為'System.Object []'的對象強制轉換為'System.Object [,]'。 在Castle.Proxies.ITestProxy.Get2DArray()在TestTest.cs中的Scratch.TestFixture.Get2DArray():第17行
從下面:
[TestFixture]
public class TestFixture
{
[Test]
public void Get2DArray()
{
Substitute.For<ITest>().Get2DArray().Returns(new object[1,1]);
}
}
public interface ITest
{
object[,] Get2DArray();
}
任何人都可以對此有所了解嗎? 我認為這是一個NSubstitute錯誤?
NSubstitute依賴於Castle,它取決於Reflection.Emit,所以他們責怪Reflection.Emit。
http://issues.castleproject.org/issue/DYNPROXY-154
要解決您的問題,看起來您不能使用多維數組。 請注意,您的異常實際上發生在Get2DArray()
,而不是Returns
。
請注意,我個人正在研究一個不使用Reflection.Emit(也不是Castle)的模擬框架。即使Alpha准備就緒也需要幾周時間,但它是一個非常強大的工具。 城堡失敗有很多場景,我沒有(我的網站會列出這些)。 如果您有興趣,請訪問http://smug.codeplex.com
這可能有點晚,但可以幫助遇到此問題並遇到此問題的人。
我們通過讓您的接口返回Array
而不是object[,]
來找到解決此限制的方法。
存在隱式轉換,因此接口實現中的代碼應該能夠保持不變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.