c# - 在moq回调c#中设置ref参数
问题描述
我正在尝试使用 c# 模拟回调将值设置为 ref 参数。
我的代码是这样的:
delegate void FooCallback(string p1, string p2, string p3, ref string p4, ref string p5, ref string p6, object p7);
public void TestMethod()
{
var parm1 = string.Empty;
var parm2 = string.Empty;
var parm3 = string.Empty;
var CallbackFunction = new FooCallback((string p1, string p2, string p3, ref string p4, ref string p5, ref string p6, object p7) => p5 = "value");
SomeServiceMock.Setup(x =>x.Foo(It.IsAny<string>(),
It.IsAny<string>(), It.IsAny<string>(), ref parm1, ref parm2, ref parm3,
It.IsAny<object>())).Callback(CallbackFunction);
}
但是我收到一个编译错误,说回调函数只能获取 Action 类型的参数,并且由于 ref(或者我可以吗?),我不能只使用 Action,所以当 Foo 是时如何更改 p5 的值叫?
我已经尝试了这里的一切
解决方案
我设法通过将 Moq 包从 4.2 升级到 4.15 来解决问题