C# Rhino模拟使用ref参数存根事件

C# Rhino模拟使用ref参数存根事件,c#,events,rhino-mocks,C#,Events,Rhino Mocks,我正在尝试从模拟对象调用事件。我是这样做的: importObject.Raise(x => x.RequestImportLevel += null, false, false, true, importLevel); 需要通过引用传递的最后一个参数。所以,我得到了一个例外 参数#4为System.Int16,但 应该是System.Int16& 我能做些什么来处理这件事 如果问题出在Rhino Mocks中-有没有其他框架完全支持这种开箱即用的功能?这个对象实现了一个接口,所以我刚刚

我正在尝试从模拟对象调用事件。我是这样做的:

importObject.Raise(x => x.RequestImportLevel += null, false, false, true, importLevel);
需要通过引用传递的最后一个参数。所以,我得到了一个例外

参数#4为System.Int16,但 应该是System.Int16&

我能做些什么来处理这件事


如果问题出在Rhino Mocks中-有没有其他框架完全支持这种开箱即用的功能?

这个对象实现了一个接口,所以我刚刚创建了一个伪类,让它从IEventWithRefParameter继承,并引入了一个函数,如

    public virtual void RaiseRequestImportLevelEvent(bool hasYc, bool hasWc, bool hasDc, ref short chosenLevel)
    {
        if (RequestImportLevel != null)
        {
            RequestImportLevel(hasYc, hasWc, hasDc, ref chosenLevel);
        }
    }
现在我在测试中使用这个虚拟类的一个实例,当我想引发一个事件时,我只调用这个函数


这几乎不是一个干净的解决方案,但至少它起到了作用。

有没有办法将事件更改为不需要ref参数?具有读/写属性的专用EventArgs可以轻松替换ref参数。不幸的是,不是。实际上,这是一个来自遗留COM组件的事件,无法将其更改为EventArgs