.net - reales - libro de android studio en español pdf
Detección del tipo de fila de datos cuando se utilizan conjuntos de datos generados por XSD (1)
Tengo un archivo de Definición de esquema XML (XSD) en Visual Studio 2010. El Diseñador de DataSet genera un conjunto de datos fuertemente tipado en el archivo <name> .designer.vb
Dependiendo de una serie de factores errantes, parece proporcionar esporádicamente una tipificación fuerte para operaciones enumerables (usadas en LINQ o para cada bucle)
Por ejemplo, a veces la base de códigos generados puede detectar el tipo y, a veces, no:
El código ofensivo parece ser si el archivo generado tiene o no la función:
Public Overridable Function GetEnumerator() As IEnumerator Implements IEnumerable.GetEnumerator
Return Me.Rows.GetEnumerator
End Function
Si lo hace, llamar al enumerador para la función devolverá un object
aburrido.
Si no es así, el enumerador devolverá el tipo apropiado.
Mi pregunta:
¿Cómo puedo lograr que genere consistentemente el comportamiento apropiado?
Nuestro código fuente no contiene código generado, por lo que cada desarrollador debe generarlo por sí mismo. Esto hace que algunas máquinas obtengan errores de compilación con tipeo incorrecto, mientras que otras no ... con el mismo código fuente exacto .
Algunas cosas que parecen tener algo que ver con eso:
- Versión de ensamblado dirigida a .NET 4.0 VS .NET 4.0 Client
- Si el XSD, el diseñador o los archivos de uso están abiertos durante la generación
- ¿Otros?
Posibles soluciones:
- Incluye fuerte tipeo / casting con todas las declaraciones
- Incluir archivo generado correctamente en el control de código fuente
El problema:
En resumen, el problema se produce cuando se MSDataSetGenerator
herramienta MSDataSetGenerator
, pero el ensamblado System.Data.DataSetExtensions
aún no se ha cargado en el proceso actual de Visual Studio.
La solución:
Una forma de cargar el ensamblaje es abrir cualquier archivo XSD y, a continuación, volver a generar el código del diseñador.
Los siguientes pasos deben generar el archivo de diseñador apropiado:
- Abra cualquier archivo XSD a la vista de diseñador (esto carga
DataSetExtensions.dll
) - Haga clic con el botón derecho en XSD y seleccione
Run Custom Tool
Aquí hay un tutorial completo paso a paso con imágenes del problema y la solución
Otras instancias:
Este problema ha sido informado a Microsoft en los siguientes tickets de error:
- # 668724 - MSDataSetGenerator genera resultados incorrectos algunas veces
- # 733077 - MSDataSetGenerator no genera clases derivadas de TypedTableBase
También se aborda en la pregunta SO:
- Typed Dataset no usa TypedTableBase en .NET 4