Hola a Todos:
Tengo un problema al migrar un código de la versión 1.1 a la 2.0
Tengo una clase:
Public Class Ejemplo
Inherits EjemploBase
#Region "Constructores"
Public Sub New()
MyBase.New()
Initialize()
End Sub
Public Sub New(ByVal pstrName As String)
MyBase.New(pstrName)
Initialize()
End Sub
Protected Sub New(ByVal pobjWareHouse As WareHouseBaseTable)
MyBase.New(pobjWareHouse)
Initialize()
End Sub
Private Sub Initialize()
//Sentencias
End Sub
end class
Ok.
En el MS Framework 1.1 el código que empleaba para generar una instancia es:
Public Shared Function CreateInstance(ByVal pobjObjectType As System.Type)
As Object
Dim arrConstructors() As ConstructorInfo =
pobjObjectType.GetConstructors(BindingFlags.Instance Or
BindingFlags.NonPublic Or BindingFlags.Public Or BindingFlags.Static)
If Not HelperFunctions.IsEmptyArray(arrConstructors) Then
For Each objConstructor As ConstructorInfo In arrConstructors
'Buscar y ejecutar el constructor sin parámetros
Dim arrParameters() As ParameterInfo =
objConstructor.GetParameters
If HelperFunctions.IsEmptyArray(arrParameters) Then
Return objConstructor.Invoke(Nothing)
End If
Next
End If
end if
Ahora con el Framework 2.0 me dispara una excepción del tipo :
{System.MemberAccessException}
pero la clase no es abstracta y los contructores son públicos.
Veo que el otro motivo es :
Que el constructor es un iniciador de la clase ¿?¿?
Me desconcierta un poco ese punto.
Por otro lado al recuperar los constructores me devuelve 4 y en la clase
solo hay 3 ...
¿Alguna idea al respecto?
Gracias de antemano.
Leer las respuestas