About the Find near features SOAP SOE Sample
[C#]
CustomLayerInfo_VBNet.cs
[Visual Basic .NET]
CustomLayerInfo_VBNet.vb
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Runtime.InteropServices
Imports ESRI.ArcGIS.esriSystem
Imports ESRI.ArcGIS.Geometry
Imports ESRI.ArcGIS.SOESupport
Namespace FindNearFeaturesSoapSOE_VBNet
    <ComVisible(True), Guid("A47E2E54-56FA-4C92-8B7C-B3B9473C9240"), ClassInterface(ClassInterfaceType.None)> _
    Public Class CustomLayerInfo_VBNet
        Implements IXMLSerialize
        Private privateName As String
        Public Property Name() As String
            Get
                Return privateName
            End Get
            Set(ByVal value As String)
                privateName = value
            End Set
        End Property
        Private privateID As Integer
        Public Property ID() As Integer
            Get
                Return privateID
            End Get
            Set(ByVal value As Integer)
                privateID = value
            End Set
        End Property
        Private privateExtent As IEnvelope
        Public Property Extent() As IEnvelope
            Get
                Return privateExtent
            End Get
            Set(ByVal value As IEnvelope)
                privateExtent = value
            End Set
        End Property
#Region "IXMLSerialize Members"
        Public Sub Serialize(ByVal data As IXMLSerializeData) Implements IXMLSerialize.Serialize
            data.TypeName = Me.GetType().Name
            data.TypeNamespaceURI = FindNearFeaturesSoapSOE_VBNet.c_ns_soe
            data.AddString("Name", Name)
            data.AddInteger("ID", ID)
            data.AddObject("Extent", Extent)
        End Sub
        Public Sub Deserialize(ByVal data As IXMLSerializeData) Implements IXMLSerialize.Deserialize
            Dim idx As Integer = FindMandatoryParam("Name", data)
            Me.Name = data.GetString(idx)
            idx = FindMandatoryParam("ID", data)
            Me.ID = data.GetInteger(idx)
            idx = FindMandatoryParam("Extent", data)
            Me.Extent = CType(data.GetObject(idx, FindNearFeaturesSoapSOE_VBNet.c_ns_esri, "Envelope"), IEnvelope)
        End Sub
#End Region
        Private Function FindMandatoryParam(ByVal fieldName As String, ByVal data As IXMLSerializeData) As Integer
            Dim idx As Integer = data.Find(fieldName)
            If idx = -1 Then
                Throw New MissingMandatoryFieldException(fieldName)
            End If
            Return idx
        End Function
        Friend Class MissingMandatoryFieldException
            Inherits Exception
            Friend Sub New(ByVal fieldName As String)
                MyBase.New("Missing mandatory field: " & fieldName)
            End Sub
        End Class
    End Class 'class CustomLayerInfo
    <ComVisible(True), Guid("0003D147-00B0-4C3C-AB64-7E684765F14E"), ClassInterface(ClassInterfaceType.None)> _
    Public Class CustomLayerInfos_VBNet
        Inherits SerializableList(Of CustomLayerInfo_VBNet)
        Public Sub New(ByVal namespaceURI As String)
            MyBase.New(namespaceURI)
        End Sub
    End Class 'class CustomLayerInfos
End Namespace