0

我正在開發一個多語言網站。我的解決方案基於以下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; 

    } 

} 

回答

0

你必須重寫ControllerActionInvoker類和InvokeActionMethodWithFilters方法,你可以使用溫莎注入的實例化對象的依賴

編輯:意識到這是爲mvc,不知道如何在webforms環境中去它