Todas las publicaciones, artículos y otros contenidos de este blog se proporciona "TAL CUAL", sin garantías, y no otorga ningún derecho. Cualquier ejemplo esta bajo los términos especificados por Microsoft
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.
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");
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";
ObjectDataSource _myObjectDataSource = new ObjectDataSource(); _myObjectDataSource .TypeName = "DataSources"; _myObjectDataSource .SelectMethod = "GetMyData";
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