.NET 设计者将约定优于配置方法用于不同的地方以避免过多的配置。虽然默认的约定有利于快速启动和运行,但有的时候改变默认的行为可能会更实用。我们看看来几个例子。
在一次性约定的情况下,通常是明确地设置配置信息,但如果想要改变这些配置时该怎么做?以下的做法可供参考:
- Dino Esposito 展示了 ASP.NET MVC Controller 中是如何进行约定的,以及如何去修改它们。
- 还可以使用一个自定义的视图引擎,在 ASP.NET MVC View 中修改约定。
- 用于 Entity Framework CodeFirst 的几个约定,如自动地将属性映射到 ID 列,以及将类映射到表。这些均能被修改。
我们之前也曾讨论过 ASP.NET MVC 的扩展点,其中提到通过其他方式来实现自己的约定。
该方法也可以与一些第三方类库联合使用。例如:
- FluentNHibernate 公约允许 NHibernate 自动映射的约定被改变。
- 诸如 Castle-Windsor 这样的 IoC 容器,支持自动注册。可以通过自动注册的方式随时对约定进行修改或添加。
在辨别什么时候坚持使用默认的约定,什么时候不使用是一个判断力的问题。在适当的地方使用自定义的约定绝对可以让你的代码更易于维护。
查看英文原文: Using Custom Conventions In .NET
感谢贾国清对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论