Error "Der Index und die Länge müssen sich auf eine Position in der Zeichenfolge beziehen"

2 posts, 0 answers
  1. Matthias Bibo
    Matthias Bibo avatar
    72 posts
    Member since:
    Mar 2010

    Posted 17 Apr 2012 Link to this post

    Hello,

    I installed the version "Version 2012.1.409.0 SP1" and got following error in one of our assemblies:

    I attached the code I wanted to decompile below the error (it is ours):

    Current member / type: System.Void Bdl.DialogCrm.Silverlight.UserControls.BDLDockingControl::CreateView(Telerik.Windows.Controls.RadPane,System.String)
     Product version: 2012.1.409.0
    Der Index und die Länge müssen sich auf eine Position in der Zeichenfolge beziehen.
    Parametername: length
    bei System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)
    bei Telerik.JustDecompiler.Steps.Inflector.Uncapitalize(String word)
    bei Telerik.JustDecompiler.Steps.Inflector.Camelize(String lowercaseAndUnderscoredWord)
    bei Telerik.JustDecompiler.Steps.RenameVariables.Camelize(String name,  conversion)
    bei Telerik.JustDecompiler.Steps.RenameVariables.(TypeReference typeReference)
    bei Telerik.JustDecompiler.Steps.RenameVariables.(TypeReference typeReference)
    bei Telerik.JustDecompiler.Steps.RenameVariables.(TypeReference typeReference)
    bei Telerik.JustDecompiler.Steps.RenameVariables.VisitObjectCreationExpression(ObjectCreationExpression node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Steps.RenameVariables.†(BinaryExpression node)
    bei Telerik.JustDecompiler.Steps.RenameVariables.VisitBinaryExpression(BinaryExpression node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitExpressionStatement(ExpressionStatement node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit[TCollection,TElement](TCollection original)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(StatementCollection node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitBlockStatement(BlockStatement node)
    bei Telerik.JustDecompiler.Steps.RenameVariables.Process(DecompilationContext context, BlockStatement block)
    bei Telerik.JustDecompiler.Decompiler.DecompilationPipeline.Run(MethodBody body, ILanguage language)
    bei Telerik.JustDecompiler.Decompiler.Extensions.(DecompilationPipeline pipeline, ILanguage language, MethodBody body, DecompilationContext& context)
    bei Telerik.JustDecompiler.Decompiler.Extensions.Decompile(MethodBody body, ILanguage language, DecompilationContext& context)
    bei Telerik.JustDecompiler.Steps.RebuildLambdaExpressions.VisitMethodReferenceExpression(MethodReferenceExpression node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit[TCollection,TElement](TCollection original)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ExpressionCollection node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitObjectCreationExpression(ObjectCreationExpression node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit[TCollection,TElement](TCollection original)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ExpressionCollection node)
    bei Telerik.JustDecompiler.Steps.RebuildLambdaExpressions.VisitMethodInvocationExpression(MethodInvocationExpression node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitBinaryExpression(BinaryExpression node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitExpressionStatement(ExpressionStatement node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit[TCollection,TElement](TCollection original)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(StatementCollection node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitBlockStatement(BlockStatement node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitIfStatement(IfStatement node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit[TCollection,TElement](TCollection original)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(StatementCollection node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitBlockStatement(BlockStatement node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitIfStatement(IfStatement node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit[TCollection,TElement](TCollection original)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(StatementCollection node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitBlockStatement(BlockStatement node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitIfStatement(IfStatement node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit[TCollection,TElement](TCollection original)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(StatementCollection node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitBlockStatement(BlockStatement node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitIfStatement(IfStatement node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit[TCollection,TElement](TCollection original)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(StatementCollection node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitBlockStatement(BlockStatement node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitIfStatement(IfStatement node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit[TCollection,TElement](TCollection original)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(StatementCollection node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitBlockStatement(BlockStatement node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitIfStatement(IfStatement node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(ICodeNode node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit[TCollection,TElement](TCollection original)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.Visit(StatementCollection node)
    bei Telerik.JustDecompiler.Ast.BaseCodeTransformer.VisitBlockStatement(BlockStatement node)
    bei Telerik.JustDecompiler.Steps.RebuildLambdaExpressions.Process(DecompilationContext context, BlockStatement body)
    bei Telerik.JustDecompiler.Decompiler.DecompilationPipeline.Run(MethodBody body, ILanguage language)
    bei Telerik.JustDecompiler.Decompiler.Extensions.(DecompilationPipeline pipeline, ILanguage language, MethodBody body, DecompilationContext& context)
    bei Telerik.JustDecompiler.Decompiler.Extensions.Decompile(MethodBody body, ILanguage language, DecompilationContext& context)
    bei Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.Write(MethodDefinition method)
    bei Telerik.JustDecompiler.Languages.BaseLanguageWriter.•ƒ(IMemberDefinition member, Boolean isFirstMember)
    bei Telerik.JustDecompiler.Languages.BaseLanguageWriter.(IMemberDefinition x, Boolean y)
    bei Telerik.JustDecompiler.Languages.BaseLanguageWriter.(TypeDefinition type, Func`3 writeMember, Boolean writeNewLine, Boolean showCompilerGeneratedMembers, Boolean isMemberDeclaration)

    Here is the code:

    private void CreateView(RadPane pane, string viewName)
    {
        if (pane != null && !string.IsNullOrEmpty(viewName))
        {
            pane.Content = ViewManager.Instance.GetViewComponent(viewName);
     
            viewName = viewName.Contains("|") ? viewName.Substring(0, viewName.IndexOf("|")) : viewName;
     
            if (pane.Content != null)
            {
                pane.Header =  ((IView)pane.Content).DisplayName;
                  
                AttachableUserControl child = pane.Content as AttachableUserControl;
                if (child != null)
                {
                    ViewDescription viewDesc = ViewManager.Instance.ViewDescriptions.FirstOrDefault(vd => vd.Name == viewName);
                    if (viewDesc != null)
                    {
                        if (viewDesc.InputViewModelType != null)
                        {
                            if (viewDesc.InputViewModelType.IsAssignableFrom(this.DataContext.GetType()))
                            {                                    
                                child.SetBinding(AttachableUserControl.InputViewModelProperty, new System.Windows.Data.Binding { Source = this.DataContext });
                            }
                            else
                            {
                                var exposedViewModel = (from i in this.DataContext.GetType().GetInterfaces()
                                                        from ea in i.GetCustomAttributes(typeof(ExposesViewModelAttribute), true).Cast<ExposesViewModelAttribute>()
                                                        where viewDesc.InputViewModelType.IsAssignableFrom(ea.ExposedType)
                                                        select ea).FirstOrDefault();
     
                                if (exposedViewModel != null)
                                {
                                    PropertyInfo pi = this.DataContext.GetType().GetProperty(exposedViewModel.PropertyName);
     
                                    child.SetBinding(AttachableUserControl.InputViewModelProperty, new System.Windows.Data.Binding { Source = pi.GetValue(this.DataContext, new object[0]) });
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                if (!pane.Header.ToString().Contains(" nicht geladen!") && !pane.Header.ToString().Contains(" (nicht geladen)"))
                {
                    pane.Header = pane.Header + " (nicht geladen)";
                }
            }
     
            pane.TitleTemplate = (DataTemplate)Application.Current.Resources["PaneTitleTemplate"];
            pane.PaneHeaderVisibility = Visibility.Visible;
              
            pane.CanUserClose = false;
            pane.CanUserPin = false;
            pane.CanFloat = false;
            pane.ContextMenuTemplate = null;
     
            pane.DocumentHostTemplate = DefaultPane.DocumentHostTemplate;
        }
    }

    PS: When I tried to mail the error (with the internal error function) the errortext was cutted after 1949 characters.

    Regards,

    Matthias

  2. Yordan Dikov
    Admin
    Yordan Dikov avatar
    69 posts

    Posted 20 Apr 2012 Link to this post

    Hi Matthias,

     Thank you for pointing those issues out. We've logged them and we'll see what is causing them. Stay tuned for updates and don't hesitate to contact us about anything around JustDecompile.

    Greetings,
    Yordan Dikov
    the Telerik team

    Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

  3. DevCraft banner
Back to Top