アットウィキロゴ
Imports System.Runtime.Serialization

<Serializable()> _
Public Class TestClass
    Implements ISerializable

    Public STR As String

    Sub New()
        Me.STR = String.Empty
    End Sub

    Sub New(str As String)
        Me.STR = str
    End Sub

    Public Sub GetObjectData(info As System.Runtime.Serialization.SerializationInfo, context As System.Runtime.Serialization.StreamingContext) _
            Implements System.Runtime.Serialization.ISerializable.GetObjectData

        info.AddValue("STR", STR, GetType(String))
    End Sub

    Public Sub New(info As SerializationInfo, context As StreamingContext)
        STR = DirectCast(info.GetValue("STR", GetType(String)), String)
    End Sub

End Class


------------------------------------------------------------------------------

Imports Microsoft.VisualStudio.DebuggerVisualizers
Imports System.Windows.Forms

<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(TestVisualizer) _
    , GetType(VisualizerObjectSource) _
    , Target:=GetType(EntityProject.TestClass) _
    , Description:="My First Visualizer")>

Public Class TestVisualizer
    Inherits DialogDebuggerVisualizer

    Protected Overrides Sub Show(windowService As Microsoft.VisualStudio.DebuggerVisualizers.IDialogVisualizerService _
                                 , objectProvider As Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider)

        Dim obj As Object = objectProvider.GetObject()
        If TypeOf obj Is EntityProject.TestClass Then
            Dim ent As EntityProject.TestClass = DirectCast(obj, EntityProject.TestClass)
            MsgBox(ent.STR)
        End If

    End Sub

    Public Shared Sub TestShowVisualizer(ByVal objectToVisualize As Object)
        Dim visualizerHost As New VisualizerDevelopmentHost(objectToVisualize, GetType(TestVisualizer))
        visualizerHost.ShowVisualizer()
    End Sub

End Class


------------------------------------------------------------------------------

Imports MyVisualizer

Module Module1

    Sub Main()

        Dim test As New EntityProject.TestClass("aaa")
        TestVisualizer.TestShowVisualizer(test)
    End Sub

End Module
最終更新:2016年11月20日 14:05