在.NET中使用自定义约定
.NET设计者将约定优于配置方法用于不同的地方以避免过多的配置。虽然默认的约定有利于快速启动和运行,但有的时候改变默认的行为可能会更实用。我们看看来几个例子。
在一次性约定的情况下,通常是明确地设置配置信息,但如果想要改变这些配置时该怎么做?以下的做法可供参考:
- Dino Esposito展示了ASP.NET MVC Controller中是如何进行约定的,以及如何去修改它们。
- 还可以使用一个自定义的视图引擎,在ASP.NET MVC View中修改约定。
- 用于Entity Framework CodeFirst的几个约定,如自动地将属性映射到ID列,以及将类映射到表。这些均能被修改。
我们之前也曾讨论过ASP.NET MVC的扩展点,其中提到通过其他方式来实现自己的约定。
该方法也可以与一些第三方类库联合使用。例如:
- FluentNHibernate公约允许NHibernate自动映射的约定被改变。
- 诸如Castle-Windsor这样的IoC容器,支持自动注册。可以通过自动注册的方式随时对约定进行修改或添加。
在辨别什么时候坚持使用默认的约定,什么时候不使用是一个判断力的问题。在适当的地方使用自定义的约定绝对可以让你的代码更易于维护。