首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在MVC3中扩展ModelStateDictionary类吗

我可以在MVC3中扩展ModelStateDictionary类吗
EN

Stack Overflow用户
提问于 2011-09-27 17:12:06
回答 1查看 1.8K关注 0票数 4

在ModelStateDictionary类中只有AddModelError和Add函数,我想扩展这个类,添加像AddModeSuccess,AddModelWarning这样的方法。我看了一下MVC3的源代码,发现有很多东西需要添加。我不想修改MVC3代码,我只想添加一个扩展。我该怎么做?

代码语言:javascript
复制
    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);
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-27 17:23:06

您可以将它们作为extension methods添加到ModelStateDictionary类中:

代码语言:javascript
复制
public static class ModelStateExtensions
{
    public static void AddModelSuccess(this ModelStateDictionary modelState, ... some parameters)
    {
        ...
    }

    public static void AddModelWarning(this ModelStateDictionary modelState, ... some parameters)
    {
        ...
    }
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7566701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档