方法的最大参数数量是多少(WebApi?)

时间:2014-11-19 07:18:02

标签: c# .net asp.net-web-api asp.net-web-api2

我在Web Api中有这个方法

[IHttpActionResult]
[Get]
public void GetSome(P1, P2 ....... Pn)
{
   ...///
}

好奇:

任何想法,Web Api为此方法允许的最大参数数量是多少?

2 个答案:

答案 0 :(得分:9)

你的意思是技术上还是实际上? :P

C#方法参数限制为65,535。大多数浏览器仅支持2000到4000个字符的URL。根据API的使用者,也可能存在一些限制。

但最重要的是:你想做什么?严重?

您正在创建API,易于理解的简单方法应该是您的主要目标。我不确定65000参数的方法是否接近简单。

对我而言,这听起来像是走下去的第1步" OMG杀了这个代码" lane:)

答案 1 :(得分:2)

Q & AInternet周围的Stack overflow类似。要求了解C# Method maximum number of parameters。同样适用于您的情况。

<强>例:

  • 包含带16383参数的方法的.net应用程序可以 编译,运行和调用(!)
  • 包含16384个或更多参数的.net应用程序可以 编译,但运行这样的程序会抛出一个未说明的异常。
  • 还可以编译包含50000个参数的.net应用程序, 但试图运行这样的应用程序会导致a StackOverflowException被抛出。
  • 尝试编译包含100000个参数的.net应用程序 或更多导致csc.exe出现编译时错误stating that the resulting expression is too long or complex to handle

注意:

  • 这些数字取决于operating system的架构 以及computer

  • 的记忆
  • 从浏览器方面看,它可能会有所不同。它可能比这更少或更多 计数。

类似的Q&amp; A

C# Method Maximum Number of Parameters

Acceptable Parameters Count for a C# Method

  

将所需的参数和较少数量的参数传递给Method将是最佳编码   实践。