【问题标题】:Is there a Limit to the Number of characters that a variable / property name can be?变量/属性名称的字符数是否有限制?
【发布时间】:2010-11-18 21:41:21
【问题描述】:

我不得不道歉,这个问题没有完全解决我的问题。这是一个处理将 UDT 对象传递给 c# webservice 的 C# 问题。客户端是一个windows mobile forms应用程序。

我目前有一个我个人定义的 UDT,现在已经添加了一个新成员(一个名为 schedulerRecordCount 的变量,该属性名为 SchedulerRecordCount)。在添加这个新成员之前,我能够毫无问题地将此对象的实例传递给 Web 服务方法。添加新成员后,我无法从我的网络方法中获得响应。在调用 web 方法并传递对象后,我会得到一个异常,上面写着“无法从传输连接中读取”。

我尝试了很多方法来排除故障,在最后的努力中,我将变量名缩短为 schedRecCnt,将属性缩短为 SchedRecCnt。这成功了。请注意,此 UDT 的所有其他成员都是 String 类型(以及我的新成员)。

有谁知道变量在 UDT 内部传递给 Web 方法时的字符数限制?

【问题讨论】:

  • 我确信这对于变量/属性名称是相似的:stackoverflow.com/questions/425988/maximum-method-name-length
  • 答案中命名的最大值为 511 个字符。 schedulerRecordCount.Length 的值是 20...我不关注你的评论,如果你不介意你能更具体一点吗?
  • 我只是说变量/属性名长度应该很大(SchedulerRecordCount 绝对可以接受)。肯定有其他问题。
  • 您认为这可能是与在我的客户端使用 Windows Mobile 相关的某种环境限制吗?
  • 这可能是最大邮件大小问题。您能否确定添加新属性前后的序列化大小?

标签: c# web-services .net-2.0


【解决方案1】:

标识符的长度当然有一些限制,但你肯定还没有接近它。我不知道确切的限制,但可能是 1000 个字符左右。

但是,您可能已达到所返回邮件总大小的限制。这将符合缩短属性名称使其工作的方式,因为这也会缩短消息的总长度。

在客户端web.config 中的SOAP 绑定设置中,检查MaxReceivedMessageSize 属性的值,并根据需要增加它。

【讨论】:

  • 当我在 MSDN 中搜索此属性时,此属性仅适用于 .NET 框架 3.0 到 4.0 而不是 2.0。我的 web 服务和客户端都建立在 2.0 框架上。还有其他想法吗?
【解决方案2】:

C# 规范没有限制,但 Visual Studio IDE 只会着色

C# 中 511 个字符,VB.Net 中 1023 个字符(其他字符为黑色)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    相关资源
    最近更新 更多