我正在使用 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 Container 中获取 ICultureContext:
[Dependency]
public ICultureContext Context { get; set; }
它已注册,但我不知道如何注入该属性。