Hi Guys,

My final goal is to have a property contain 2 values, the first value will be used the normal way you would in a property,
Eg.
Code:
myClass.myProperty = "myName"

dim str as String = myClass.myProperty
and the second value, will be metaData,
Eg.
Code:
myClass.myProperty.metaData = "mySurname"

dim str as string = myClass.myProperty.metaData
-----------------------------------------------------------

Here is where I'm up to + my problem...
Code:
Public Class clsMetaData
    Private m_metaData As String
    Public Property metaData() As String
        Get
            Return m_metaData
        End Get
        Set(ByVal value As String)
            m_metaData = value
        End Set
    End Property
End Class

Public Class myTester
    Private m_myProperty As New clsMetaData
    Public Property myProperty() As clsMetaData
        Get
            Return m_myProperty
        End Get
        Set(ByVal value As clsMetaData)
            m_myProperty = value
        End Set
    End Property
End Class

Public Class settings1
    Dim myClass1 As myTester
    Public Sub DoThis()
        myClass1.myProperty.metaData = "mySurname"
        myClass1.myProperty = "myName"
    End Sub
End Class
When I use [myClass1.myProperty.metaData = "mySurname"] - Hurray, it seems I have my meta data, until I try [myClass1.myProperty = "myName"] it wont allow me to do this because I am not initializing the property with a string variable.

I cannot seem to overload this property right either because if I add in the next code section, only the return types differ, thus errors.
Code:
    Private m_myPropertyValue As String
    Public Property myProperty() As String
        Get
            Return m_myPropertyValue
        End Get
        Set(ByVal value As String)
            m_myPropertyValue = value
        End Set
    End Property
Thanks in advance for any advice and ideas,

Smithy.