public DisplayStringElement(DisplayStringType displayString) { if (displayString == null) { throw new ArgumentNullException(nameof(displayString)); } _displayString = displayString; }
internal string FormatDisplayString(IVariableInformation variable) { try { _depth++; if (_depth < MAX_FORMAT_DEPTH) { if (!(variable is VisualizerWrapper) && //no displaystring for dummy vars ([Raw View]) (ShowDisplayStrings == DisplayStringsState.On || (ShowDisplayStrings == DisplayStringsState.ForVisualizedItems && variable.IsVisualized)) && !variable.IsPreformatted) { VisualizerInfo visualizer = FindType(variable); if (visualizer == null) { return(variable.Value); } Cache.Add(variable); // vizualized value has been displayed foreach (var item in visualizer.Visualizer.Items) { if (item is DisplayStringType) { DisplayStringType display = item as DisplayStringType; // e.g. <DisplayString>{{ size={_Mypair._Myval2._Mylast - _Mypair._Myval2._Myfirst} }}</DisplayString> if (!EvalCondition(display.Condition, variable, visualizer.ScopedNames)) { continue; } return(FormatValue(display.Value, variable, visualizer.ScopedNames)); } } } } } catch (Exception e) { // don't allow natvis to mess up debugging // eat any exceptions and return the variable's value _process.Logger.WriteLine("natvis FormatDisplayString: " + e.Message); } finally { _depth--; } return(variable.Value); }