Unity を使用しており、データ注釈でタグ付けされたモデルがあります。
public class SomeModel
{
[SlackDisplayName("ED0CAD76-263E-496F-ABB1-A4DFE6DEC5C2")]
public String SomeProperty { get; set; }
}
この SlackDisplayName プロパティは、プロパティの静的表示名を解決する DisplayName の子クラスです。この基準を満たすことで、それを動的に作成したかっただけです。
- この注釈の使用は可能です。
- その注釈を使用して、多言語アプリケーションを実装できます。
- GUID によって識別される言語テンプレート
- アノテーションにカルチャ 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; }
登録されていますが、そのプロパティを注入する方法がわかりません。