Problema de cualificación de un ObjectDataSource. System.InvalidOperationException: The type specified in the TypeName property of ObjectDataSource


Hola a todos


Con frecuencia estoy encontrando bastantes casos de soporte donde aparece el siguiente mensaje con


Exception Details: System.InvalidOperationException: The type specified in the TypeName property of ObjectDataSource ‘_myObjectDataSource’ could not be found.


datasource


Aunque parezca a simple vista que nos hallamos ante un gran problema, no es más que un problema de cualificación en el código a la hora de invocar el ObjectDataSource. Entonces se debería añadir el nombre Public Key, version y culture en un caso o en otro namespace y assembly en el que esta incluido el ObjectDataSource que se está declarado.


Dos ejemplos serían los siguientes (dependiendo de como lo invoqueis)



ObjectDataSource _myObjectDataSource = new ObjectDataSource( “MyWebPart.SourceProvider.DataSources, MyWebPart.SourceProvider”,
“GetMyData”);


La solución sería


ObjectDataSource _myObjectDataSource = new ObjectDataSource(
“MyWebPart.SourceProvider.DataSources, MyWebPart.SourceProvider,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=68acc472a0988aff”,
“GetMyData”);


Como veis hemos añadido la Public Key, culture y la versión para que SharePoint exactamente sepa donde buscarlo. 


Desde el otro método de invocación



ObjectDataSource _myObjectDataSource = new ObjectDataSource();
_myObjectDataSource .TypeName = “DataSources”;
_myObjectDataSource .SelectMethod = “GetMyData”;


La solución sería


ObjectDataSource _myObjectDataSource = new ObjectDataSource();
_myObjectDataSource .TypeName = “MyWebPart.SourceProvider.DataSources”;
_myObjectDataSource .SelectMethod = “GetMyData”;


Para arreglarlo deberíamos de indicar el assembly y el namespace donde se encuentra el objectdatasource.


Un saludo.


Héctor Calvarro Martín. SharePoint Dev. Microsoft Support Engineer for DEV EMEA

Comments (0)