Сметные отображения отражения.
-
27-10-2019 - |
Вопрос
Я хотел бы проанализировать с помощью файла сопоставления Fluent Nhibernate, чтобы я мог получить имя таблицы и имена столбцов, которые указаны там.
Загрузка сборки и отражение типа как Class Map не является проблемой, но этот класс получает только методы для установки таблицы и имен столбцов - ничего, чтобы вернуть имена снова.
Любые идеи?
Решение
С использованием Отражатель, Похоже, что метод таблицы имеет эту подпись:
public void Table(string tableName)
{
this.attributes.Set<string>(x => x.TableName, tableName);
}
Столбцы будут намного сложнее, так как они сохранят свойства, ссылки и коллекции отделены. Например.
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;
}
Теоретически, хотя вы можете получить атрибуты, свойства и ссылки на частные поля через отражение и получить информацию таким образом.
Не связан с StackOverflow