是否可以创建一个将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;。
中不存在感谢。
答案 0 :(得分:0)
不,抱歉。除非您指定实际的泛型参数,否则您无法进行编译时检查,这需要在编译时知道类型。