我使用的統一,並有標記數據註釋的型號:在(數據)註釋使用Unity的依賴注入
public class SomeModel
{
[SlackDisplayName("ED0CAD76-263E-496F-ABB1-A4DFE6DEC5C2")]
public String SomeProperty { get; set; }
}
這SlackDisplayName屬性是一個子類顯示名稱,它解決了一個靜態的顯示名稱爲屬性。我只是想通過滿足這個標準來動態制定這個標準:
- 使用這個註解是可能的。
- 我可以使用該註釋實現多語言應用程序。
- 語言模板得到由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; }
它已經註冊,但我不知道如何獲得該屬性注入。
的AddNewExtension接受一個參數,它應該我RecursiveBuilUpContainerExtension。您是否有策略來單元測試使用此數據註釋屬性的類,因爲據我所知,您現在依賴於Mvc並從IoC到單元測試。 –
@PatrickDesjardins,我剛剛明白了,可以看到你的觀點。你有沒有發現在我們的單元測試中不需要使用IoC容器的解決方案? –