Sitecore で Glass Mapper を使用しています。モデルを使用して、sitecore フィールドの値を取得できます。しかし、メソッドに文字列をハードコーディングせずにモデルを使用して、サイトコア フィールド (サイトコア フィールド タイプ) を簡単に取得したい (を使用GetProperty()
する場合は、プロパティ名 string が必要です)。
だから私はこれを達成するためにこれを書きましたが、長いモデル識別子があるとひどく見えるので、それを使用するときに2つのタイプを渡す必要があることに満足していません.
public static string SitecoreFieldName<T, TU>(Expression<Func<TU>> expr)
{
var body = ((MemberExpression)expr.Body);
var attribute = (typeof(T).GetProperty(body.Member.Name).GetCustomAttributes(typeof(SitecoreFieldAttribute), false)[0]) as SitecoreFieldAttribute;
return attribute.FieldName;
}
このように入手できるのが最も理想的な方法ですModel.SomeProperty.SitecoreField()
。しかし、そこからリフェクションを行う方法がわかりません。それはあらゆるタイプの拡張になる可能性があるためです。
ありがとう!