本文整理汇总了C#中Mono.Debugging.Client.ObjectValue.Refresh方法的典型用法代码示例。如果您正苦于以下问题:C# ObjectValue.Refresh方法的具体用法?C# ObjectValue.Refresh怎么用?C# ObjectValue.Refresh使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mono.Debugging.Client.ObjectValue
的用法示例。
在下文中一共展示了ObjectValue.Refresh方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetVisualizerWidget
public override Control GetVisualizerWidget (ObjectValue val)
{
var ops = DebuggingService.DebuggerSession.EvaluationOptions.Clone ();
ops.AllowTargetInvoke = true;
ops.ChunkRawStrings = true;
ops.EllipsizedLength = 5000;//Preview window can hold aprox. 4700 chars
val.Refresh (ops);//Refresh DebuggerDisplay/String value with full length instead of ellipsized
string value = val.Value;
Gdk.Color col = Styles.PreviewVisualizerTextColor.ToGdkColor ();
if (DebuggingService.HasInlineVisualizer (val))
value = DebuggingService.GetInlineVisualizer (val).InlineVisualize (val);
var label = new Gtk.Label ();
label.Text = value;
label.ModifyFont (FontService.SansFont.CopyModified (Ide.Gui.Styles.FontScale11));
label.ModifyFg (StateType.Normal, col);
label.SetPadding (4, 4);
if (label.SizeRequest ().Width > 500) {
label.WidthRequest = 500;
label.Wrap = true;
label.LineWrapMode = Pango.WrapMode.WordChar;
} else {
label.Justify = Gtk.Justification.Center;
}
if (label.Layout.GetLine (1) != null) {
label.Justify = Gtk.Justification.Left;
var trimmedLine = label.Layout.GetLine (50);
if (trimmedLine != null) {
label.Text = value.Substring (0, trimmedLine.StartIndex).TrimEnd ('\r', '\n') + "\n…";
}
}
label.Show ();
return label;
}