Function EncodeProperty(ByVal key As String, ByVal value As String) As String
        Dim sb As New Text.StringBuilder()
        sb.Append(key)
        sb.Append(value)
        sb.Replace(";", "\;", key.Length, sb.Length - key.Length)
        sb.Replace(vbCrLf, "=0D=0A")
        
        Dim offset As Integer = 76
      
        Do While offset < sb.Length
            Dim pos As Integer = sb.ToString(offset - 5, 10).IndexOf("=0D=0A")
                       If pos = -1 Then
                sb.Insert(offset - 5 + pos, "=" & vbCrLf)
                offset += 79 - 5 + pos
            Else
                sb.Insert(offset, "=" & vbCrLf)
                offset += 79
            End If
        Loop
        Return sb.ToString
    End Function
调用这个function后提示这样的错误:
索引和长度必须引用该字符串内的位置。
参数名: length 行 144:      
行 145:        Do While offset < sb.Length
146行出错:
行 146:            Dim pos As Integer = sb.ToString(offset - 5, 10).IndexOf("=0D=0A")行 148:            If pos = -1 Then各位大哥,帮个忙,看看哪里出了问题。

解决方案 »

  1.   

    sb.ToString(offset - 5, 10)
    sb中从offset - 5开始取10个字符
    超过了范围,可能从offset - 5开始的字符数不满10个
      

  2.   

    dim str as string
    If offset - 5 + 10 <= sb.Length Then
        str = sb.ToString(offset - 5, 10)
    Else
        str = sb.ToString(offset - 5, sb.Length - (offset - 5) )
    End If
    Dim pos As Integer = str.IndexOf("=0D=0A")
      

  3.   

    我去试了下,以前那个错误没有了,但是还是出现了这个错误:
    无法显示 XML 页。 
    使用 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。 
    --------------------------------------------------------------------------------文档的顶层无效。处理资源 'http://localhost/clubwebsite/events_download.ashx?EventID=2' 时出错。第 1 行,位置: 1 BEGIN:VCALENDAR 
    这是什么原因啊?
      

  4.   

    无法显示 XML 页
     使用 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。