3

Unity を使用しており、データ注釈でタグ付けされたモデルがあります。

public class SomeModel
{    
   [SlackDisplayName("ED0CAD76-263E-496F-ABB1-A4DFE6DEC5C2")]
   public String SomeProperty { get; set; }    
}

この SlackDisplayName プロパティは、プロパティの静的表示名を解決する DisplayName の子クラスです。この基準を満たすことで、それを動的に作成したかっただけです。

  1. この注釈の使用は可能です。
  2. その注釈を使用して、多言語アプリケーションを実装できます。
  3. GUID によって識別される言語テンプレート
  4. アノテーションにカルチャ ID を渡してはいけません

さらに、私の SlackDisplayName アノテーションは次のようになります。

/// <summary>
/// Annotation for non-fixed display names
/// </summary>
public class SlackDisplayNameAttribute : DisplayNameAttribute
{
    /// <summary>
    /// TODO
    /// </summary>
    /// <param name="identifierGUID"></param>
    public SlackDisplayNameAttribute(String identifierGUID)
        : this(Guid.Parse(identifierGUID))
    {
    }

    /// <summary>
    /// TODO
    /// </summary>
    /// <param name="identifier"></param>
    public SlackDisplayNameAttribute(Guid identifier)
        : base()
    { 

    }

    /// <summary>
    /// The culture context to use.
    /// </summary>
    [Dependency]
    public ICultureContext Context { get; set; }

    /// <summary>
    /// Gets the display name for the given GUID.
    /// </summary>
    public override string DisplayName
    {
        get
        {
            return "NOT_DEFINED";
            //return Context.GetLanguageTemplate(new Guid()); 
        }
    }
}

そして今、問題は次のとおりです: Unity コンテナーから ICultureContext を取得する方法:

[Dependency]
public ICultureContext Context { get; set; }

登録されていますが、そのプロパティを注入する方法がわかりません。

4

1 に答える 1