Files
VisualizerExtensionExample/MailAddressVisualizer/MailAddressVisualizer/MailAddressDebuggerVisualizerProvider .cs
2026-01-19 10:59:41 +01:00

33 lines
1.2 KiB
C#

using MailAddressVisualizerSource;
using Microsoft.VisualStudio.Extensibility;
using Microsoft.VisualStudio.Extensibility.DebuggerVisualizers;
using Microsoft.VisualStudio.RpcContracts.RemoteUI;
using System.Net.Mail;
using System.Threading;
using System.Threading.Tasks;
namespace MailAddressVisualizer;
[VisualStudioContribution]
internal class MailAddressDebuggerVisualizerProvider : DebuggerVisualizerProvider
{
public override DebuggerVisualizerProviderConfiguration DebuggerVisualizerProviderConfiguration => new(
[
new VisualizerTargetType("MailAddress Visualizer", typeof(MailAddress))
])
{
VisualizerObjectSourceType = new VisualizerObjectSourceType(typeof(MailAddressObjectSource)),
Style = VisualizerStyle.ToolWindow,
};
public override async Task<IRemoteUserControl> CreateVisualizerAsync(
VisualizerTarget visualizerTarget, CancellationToken cancellationToken)
{
MailAddressModel? model = await visualizerTarget
.ObjectSource
.RequestDataAsync<MailAddressModel?>(jsonSerializer: null, CancellationToken.None);
return await Task.FromResult<IRemoteUserControl>(
new MailAddressVisualizerUserControl(model));
}
}