Mapeaciones de reflexión nhibernidad fluida
-
27-10-2019 - |
Pregunta
Me gustaría analizar un archivo de mapeo nhibernato fluido para poder obtener el nombre de la tabla y los nombres de columnas que se especifican allí.
Cargar el ensamblaje y reflejar el tipo como ClassMap no es un problema, pero esa clase solo obtiene métodos para establecer los nombres de la tabla y la columna, nada para recuperar los nombres.
¿Algunas ideas?
Solución
Usando Reflector, parece que el método de tabla tiene esta firma:
public void Table(string tableName)
{
this.attributes.Set<string>(x => x.TableName, tableName);
}
Las columnas serán mucho más difíciles, ya que mantiene las propiedades, las referencias y las colecciones separadas. P.ej.
protected virtual PropertyPart Map(PropertyInfo property, string columnName)
{
PropertyPart propertyMap = new PropertyPart(property, typeof(T));
if (!string.IsNullOrEmpty(columnName))
{
propertyMap.Column(columnName);
}
this.properties.Add(propertyMap);
return propertyMap;
}
En teoría, aunque podría obtener los atributos de los campos privados, las propiedades y las referencias a través de la reflexión y obtener la información de esa manera.