System.Speech является частью MSNet .Net и зависит от встроенных звуковых драйверов, движка TLS и т. д. ... и доступен только в Windows.
Я считаю, что в Mono была проделана определенная работа с пространством имен Speech 4/5 лет назад, но в этих версиях нет ничего в этом пространстве имен.
Вам нужно будет посмотреть в сторонних речевых библиотеках Linux и напишите некоторые обертки C # для них, если они в настоящее время недоступны.
Используя Конфигурацию, можно назвать GetClassMapping () методом для определенного типа, который дал бы Вам некоторую отображающуюся информацию для того типа.
(По крайней мере, дело обстоит так в NHibernate, но я предполагаю, что это будет подобно в, в спящем режиме).
возможно, используйте SessionFactory.getClassMetadata?
При использовании аннотации Таблицы, Вы могли бы сделать что-то вроде этого:
Table table = Entity.class.getAnnotation(Table.class);
String tableName = table.name();
Это немного странно, но это работает:
ClassMetadata hibernateMetadata = sessionFactory.getClassMetadata(pClassName);
if (hibernateMetadata == null)
{
return;
}
if (hibernateMetadata instanceof AbstractEntityPersister)
{
AbstractEntityPersister persister = (AbstractEntityPersister) hibernateMetadata;
String tableName = persister.getTableName();
String[] columnNames = persister.getKeyColumnNames();
}
Configuration cfg = new Configuration().configure();
cfg.addResource("com/struts/Entities/User.hbm.xml");
cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
Mappings m=cfg.createMappings();
System.out.println(">> class: "+m.getClass(className));
System.out.println("User table name:: "+m.getClass("User").getTable().getName());