38 lines
1.5 KiB
C#
38 lines
1.5 KiB
C#
// Copyright (c) Microsoft. All rights reserved.
|
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
|
|
namespace MemoryStreamVisualizer;
|
|
|
|
using MemoryStreamObjectSource;
|
|
using Microsoft.VisualStudio.Extensibility;
|
|
using Microsoft.VisualStudio.Extensibility.DebuggerVisualizers;
|
|
using Microsoft.VisualStudio.RpcContracts.RemoteUI;
|
|
using System.IO;
|
|
using System.Net.Mail;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
/// <summary>
|
|
/// Debugger visualizer provider for <see cref="MemoryStream"/>.
|
|
/// </summary>
|
|
[VisualStudioContribution]
|
|
internal class MemoryStreamDebuggerVisualizerProvider : DebuggerVisualizerProvider
|
|
{
|
|
/// <inheritdoc/>
|
|
public override DebuggerVisualizerProviderConfiguration DebuggerVisualizerProviderConfiguration => new(
|
|
[
|
|
new VisualizerTargetType("%MemoryStreamVisualizer.MemoryStreamDebuggerVisualizerProvider.Name%", typeof(MemoryStream)),
|
|
new VisualizerTargetType("MailAddress Visualizer", typeof(MailAddress))
|
|
])
|
|
{
|
|
VisualizerObjectSourceType = new VisualizerObjectSourceType(typeof(MemoryStreamVisualizerObjectSource)),
|
|
Style = VisualizerStyle.ToolWindow,
|
|
};
|
|
|
|
/// <inheritdoc/>
|
|
public override Task<IRemoteUserControl> CreateVisualizerAsync(VisualizerTarget visualizerTarget, CancellationToken cancellationToken)
|
|
{
|
|
return Task.FromResult<IRemoteUserControl>(new MemoryStreamVisualizerUserControl(visualizerTarget));
|
|
}
|
|
}
|