// Decompiled with JetBrains decompiler // Type: Microsoft.VisualStudio.Debugger.IEnumerableVisualizer.IEnumerableVisualizer // Assembly: IEnumerableVisualizer.UI, Version=18.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a // MVID: 8D605BCB-B575-4FCD-B6C8-446C06150F34 // Assembly location: C:\Program Files\Microsoft Visual Studio\18\Professional\Common7\IDE\CommonExtensions\Platform\Debugger\Visualizers\IEnumerableVisualizer.UI.dll using Microsoft.VisualStudio.DebuggerVisualizers; using Microsoft.VisualStudio.DebuggerVisualizers.Common; using Microsoft.VisualStudio.OutOfProcessVisualizers; using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.Utilities; using System; using System.Globalization; using System.Threading.Tasks; using System.Windows; using System.Windows.Forms; #nullable enable namespace Microsoft.VisualStudio.Debugger.IEnumerableVisualizer; public class IEnumerableVisualizer : DialogDebuggerVisualizer { public IEnumerableVisualizer() : base((FormatterPolicy) 1) { } protected internal virtual void Show( #nullable disable IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider) { if (!(windowService is IWin32Window win32Window)) throw new ApplicationException("This debugger does not support modal visualizers"); using (DpiAwareness.EnterDpiScope((DpiAwarenessContext) -4)) { IEnumerableViewModel viewModel = new IEnumerableViewModel((IAsyncVisualizerObjectProvider) objectProvider, VsTaskLibraryHelper.WithPriority(ThreadHelper.JoinableTaskFactory, (VsTaskRunContext) 6)); viewModel.UINormalPriorityJTF.Run((Func) (async () => await viewModel.InitializeAsync())); IEnumerableVisualizerControl visualizerControl1 = new IEnumerableVisualizerControl(); visualizerControl1.DataContext = (object) viewModel; visualizerControl1.Debugger = (IVsDebugger) null; visualizerControl1.AreDataTipsEnabled = false; IEnumerableVisualizerControl visualizerControl2 = visualizerControl1; OutOfProcessVisualizerModalDialogViewModel modalDialogViewModel = new OutOfProcessVisualizerModalDialogViewModel((OutOfProcessVisualizer) null, string.Format((IFormatProvider) CultureInfo.CurrentCulture, Resources.G_TitlebarCaption, (object) viewModel.DataObjectType.ToString()), Guid.Empty, string.Empty, string.Empty, viewModel.UINormalPriorityJTF); ((OutOfProcessVisualizerViewModel) modalDialogViewModel).MainContent = (IDisposable) visualizerControl2; ((OutOfProcessVisualizerViewModel) modalDialogViewModel).DialogState = (DialogState) 1; ModalVisualizerDialog visualizerDialog = new ModalVisualizerDialog(); ((FrameworkElement) visualizerDialog).DataContext = (object) modalDialogViewModel; Window window = (Window) visualizerDialog; try { if (viewModel.FatalExceptionCaught) return; Microsoft.VisualStudio.Debugger.IEnumerableVisualizer.IEnumerableVisualizer.ShowWpfDialog(window, win32Window.Handle); } catch (Exception ex) { if (viewModel.FatalExceptionCaught) return; throw; } } } private static void ShowWpfDialog(Window window, IntPtr hwndParent) { WindowExtensions.SetOwner(window, hwndParent); window.ShowDialog(); } }