代码之家  ›  专栏  ›  技术社区  ›  Shaddix

Rhino Mocks使用ref参数截取事件

  •  0
  • Shaddix  · 技术社区  · 14 年前

    我正试着从我的模仿对象中调用一个事件。我这样做就像:

    importObject.Raise(x => x.RequestImportLevel += null, false, false, true, importLevel);
    

    需要通过引用传递的最后一个参数。所以,我有个例外

    参数4为System.Int16,但 应为System.Int16&

    我该怎么办?

    如果问题出在Rhino Mocks中——是否有其他框架可以直接支持这个问题?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Shaddix    14 年前

    这个对象实现了一个接口,所以我刚刚创建了一个虚拟类,使它从IEventWithRefParameter继承,并引入了一个类似

        public virtual void RaiseRequestImportLevelEvent(bool hasYc, bool hasWc, bool hasDc, ref short chosenLevel)
        {
            if (RequestImportLevel != null)
            {
                RequestImportLevel(hasYc, hasWc, hasDc, ref chosenLevel);
            }
        }
    

    现在我正在测试中使用这个虚拟类的一个实例,当我想引发一个事件时,我只调用这个函数。

    几乎不是一个干净的解决方案,但至少它能做到这一点。