C#程序员,可能因为早期接触了很多Web.config这种配置思路的影响,常常难以理解通过代码注入组件的思想,其实是一样的,都是在程序运行时,加载相关组件到运行环境中,供使用;
如:
public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API configuration and services config.Filters.Add(new ExceptionHandlingAttribute()); // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); } }
config.Filters.Add(new ExceptionHandlingAttribute());这行代码,其实是给过滤器增加一个新的实例,Register方法会在系统启动时被框架调用;