我正在尝试使用c#mock回调来设置一个参数的值,该参数是一个参考
我的代码是这样的:
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 来解决问题