33 lines
1.2 KiB
C#
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));
|
|
}
|
|
} |