流fluentニベナート反射マッピング
-
27-10-2019 - |
質問
流fluentなNhibernateマッピングファイルを解析して、そこに指定されているテーブル名と列名を取得できるようにしたいと思います。
アセンブリをロードしてタイプをクラスマップとして反映することは問題ではありませんが、そのクラスはテーブルと列名を設定する方法のみを取得します。名前を再び取り戻すことはできません。
何か案は?
解決
使用 リフレクター, 、テーブルメソッドにはこの署名があるように見えます。
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