Visual Visual Text Textizer отсутствует текст

Я отлаживаю строковую переменную в Visual Studio с помощью Text Visualizer. Однако кажется, что большая часть в середине строки отсутствует. В чем причина этого?

enter image description here

Ответ 1

Текстовый визуализатор в Visual Studio может отображать только 32 700 символов. Если ваша строка длиннее этой, она автоматически заменяет лишнюю часть в середине строки на ...

Я нашел это с трудом.

Изменить: это, по-видимому, исправлено в обновлении 2. Если вы на Update 1, см. Ответ Diamond.

Ответ 2

Это проблема, связанная с обновлением Visual Studio 2015 Update 1, как описано здесь: https://connect.microsoft.com/VisualStudio/feedback/details/2016177/text-visualizer-misses-corrupts-text-in-long-strings,

Microsoft будет иметь постоянное исправление для этого в первом обновлении после обновления 1. В то же время используйте следующее обходное решение: вы можете установить длину, с которой Text Visualizer будет обрезать, добавив раздел реестра. Используйте следующую команду, чтобы установить длину на большее число (пример 250000):

reg add HKCU\Software\Microsoft\VisualStudio\14.0\Debugger/v TextVisualizerStringLimit/t REG_DWORD/d [number]

В качестве альтернативы используйте предыдущую версию Visual Studio, если она установлена.

Ответ 3

Существует решение здесь.

  1. Создать новую библиотеку классов проекта
  2. Добавьте новый Form MessageForm с TextBox внутри, проверьте свойства MaxLength и Multiline TextBox.
  3. Добавьте файл.cs с последующим содержимым:
using System;
using Microsoft.VisualStudio.DebuggerVisualizers;
using System.Windows.Forms;    
[assembly: System.Diagnostics.DebuggerVisualizer(
typeof(TextVisualizer.DebuggerSide),
typeof(VisualizerObjectSource),
Target = typeof(String),
Description = "My Visualizer")]
namespace TextVisualizer
{
    public class DebuggerSide : DialogDebuggerVisualizer
    {
        protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
        {
            var message = new MessageForm();
            ((TextBox) message.Controls.Find("textbox1",false)[0]).Text = objectProvider.GetObject().ToString();
            message.ShowDialog();
        }
    }
}
  1. Проект строительства
  2. Найдите DLL, содержащую созданный визуализатор, и скопируйте DLL в любое из следующих мест:
    • VisualStudioInstallPath\Common7\Packages\Debugger\Визуализаторы
    • Мои документы \VisualStudioVersion\Visualizers

Если вы хотите использовать управляемый визуализатор для удаленной отладки, скопируйте DLL на тот же путь на удаленном компьютере. Перезапустите сеанс отладки. Дополнительные сведения см. В разделе Практическое руководство. Установка визуализатора.