多言語 Web サイトを開発しています。次の 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;
}
}