我一直在阅读,似乎无法找到一种方法来允许函数完全接受通用元组,但是也找不到任何表示元组不能接受通用参数的方法,这是在C#中所有可能?下面是我要定义的函数类型(显然不起作用)。
public static TController CreateControllerWithAuthenticatedContextsAndResponseMessages<TController>(
List<Tuple<TRequest, TResponse, Func<TResponse>, Expression<Func<TRequest, bool>>>> genList,
string policyName)
where TController : class
where TRequest : class
where TResponse : class
{
}
这有可能做到吗?否则,还有其他方法可以采用这些参数吗?之所以这么复杂,是因为我要确保用户(我们)不能传递错误数量的每个参数,因为它需要每个参数。
编辑:对不起,应该更清楚了。 TRequest和TResponse必须是泛型列表,因为它们将类似于AddedThis,AddedThat。与结果函数和表达式相匹配。这是为了模拟要测试的控制器。
答案 0 :(得分:1)
是的,它确实有效,但是您必须在方法的签名中定义所有通用类型参数:
public static TController CreateControllerWithAuthenticatedContextsAndResponseMessages
<TController, TRequest, TResponse>
( ... )
数字2和3丢失了。