MethodName作为没有方法参数的类型参数

时间:2014-06-24 02:24:33

标签: c# moq

是否可以创建一个将MethodName作为类型化参数的方法。我在编译时检查了方法的名称。我知道我可以执行以下操作 - 传入方法名称的字符串:

public static DoStuff<TType>(Mock<TType> mockType, string methodName)
{
    var methods = mockType.GetMethods(BindingFlags.Public | BindingFlags.Instance)
                          .Where(method => method.Name == methodName && method.ReturnType == typeof(TResult))
                          .ToList();
    // ...
}

用过:

var myType = new Mock<MyType>();
myType.DoStuff("Update");

但有没有办法做一些事情:

var myType = new myType();
myType.DoStuff(m => m.Update)

在汇编时对其进行评估,如果“更新”,则会抛出。在Type&#39; MyType&#39;。

中不存在

感谢。

1 个答案:

答案 0 :(得分:0)

不,抱歉。除非您指定实际的泛型参数,否则您无法进行编译时检查,这需要在编译时知道类型。