我正在開發一個多語言網站。我的解決方案基於以下LocalizedDisplayAttribute類來顯示多語言文本。我想爲這個類注入一些依賴。但是這個類是由.Net Framework實例化的。不使用服務定位器如何容器注入依賴關係?注入某個屬性的某些依賴項
這裏是我的代碼塊
[AttributeUsage(AttributeTargets.All)]
public class LocalizedDisplayAttribute : DisplayNameAttribute
{
public MultilanguageKeys Key { get; set; }
public IMultilanguageManager MultilanguageManager { get; set; }
public LocalizedDisplayAttribute(IMultilanguageManager multilanguageManager)
{
this.MultilanguageManager = multilanguageManager;
}
public override string DisplayName
{
get
{
// Run some business
return GetCustomAttribute(Key);
}
}
private string GetCustomAttribute(MultilanguageKeys key)
{
int multiLanguageId = 3;
MultiLanguageDictionaryInfo multiLanguageDictionary = MultilanguageManager.DictionaryList()
.Where(t => t.Key == key.ToString())
.Where(t => t.MultilanguageId == multiLanguageId)
.FirstOrDefault();
return multiLanguageDictionary.Value;
}
}