Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Sub CopyObject(hObjeto As Object) As Object
- Dim hNewMe As Object = Object.New(Object.Type(hObjeto)) 'se genera un objeto de la mismo tipo que nos pasan
- Dim s As String 'variable utilizada para almacenar el valor de hclass.symbols
- Dim hclass As Class = Object.Class(hObjeto) 'contiene el valor de la clase del objeto
- Dim hChild As Object
- Dim nuevoObjeto As Object
- Dim caso As Integer 'tipo de dato de la propiedad del objeto
- Dim contador, a As Integer 'para usarlo en bucle si son arrays
- Dim arrayPosible As Object
- 'Inicio de la copia de las propiedades....
- For Each s In hclass.Symbols
- If s = "Chlidren" Then Continue
- If Not hclass[s].ReadOnly Then
- caso = TypeOf(Object.GetProperty(hObjeto, s))
- Select Case caso
- Case gb.Object
- 'la propiedad es un objeto, vuelvo a llamar a la funcion para que me extraiga los valores y no las referencias
- nuevoObjeto = CopyObject(Object.GetProperty(hObjeto, s))
- Object.SetProperty(hNewMe, s, nuevoObjeto)
- Try contador = Object.GetProperty(hObjeto, s).count
- If Error Then
- 'no es un array
- Else
- For a = 0 To contador - 1
- nuevoObjeto.add(Object.GetProperty(hObjeto, s)[a])
- Next
- Endif
- Default
- 'la propiedad no es un objeto, copio el valor
- Object.SetProperty(hNewMe, s, Object.GetProperty(hObjeto, s))
- End Select
- Endif
- Next
- 'devuelvo la copia del objeto
- Return hNewMe
- End
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement