2011-09-27 23 views
2

中擴展ModelStateDictionary類,只有AddModelError和Add函數,我想擴展類,添加像AddModeSuccess,AddModelWarning這樣的方法。 我看看MVC3源代碼,發現有很多東西需要添加。我不想修改MVC3代碼,我只是想添加一個擴展。我怎麼辦?我可以在ModelStateDictionary類的MVC3

public void Add(KeyValuePair<string, ModelState> item) { 
     ((IDictionary<string, ModelState>)_innerDictionary).Add(item); 
    } 

    public void Add(string key, ModelState value) { 
     _innerDictionary.Add(key, value); 
    } 

    public void AddModelError(string key, Exception exception) { 
     GetModelStateForKey(key).Errors.Add(exception); 
    } 

    public void AddModelError(string key, string errorMessage) { 
     GetModelStateForKey(key).Errors.Add(errorMessage); 
    } 

回答

1

你可以爲extension methods將它們添加到ModelStateDictionary類:

public static class ModelStateExtensions 
{ 
    public static void AddModelSuccess(this ModelStateDictionary modelState, ... some parameters) 
    { 
     ... 
    } 

    public static void AddModelWarning(this ModelStateDictionary modelState, ... some parameters) 
    { 
     ... 
    } 
} 
+1

所以ModelState中還需要添加一些屬性或的Fileds? – user928359

相關問題