好吧,MvcContrib.IncludeHandling
使用 MvcContribDependencyResolver
来查找必要的组件。它没有很好的记录(有关更多详细信息,请参见示例站点,尽管在这种情况下使用自定义注入器)。
例如,MvcContrib.Castle
有一个WindsorDependencyResolver
用于 IoC 的容器,你可以模仿它来使用 NInject(如果你用 Google 搜索可能会有一些东西)。初始化非常冗长,但是像这样(容器是 Windsor 容器,在您的情况下,使用 NInject):
var httpContextProvider = new HttpContextProvider(HttpContext.Current);
var settings = IIncludeHandlingSettings)ConfigurationManager.GetSection("includeHandling");
container.Register(Component.For(typeof(IIncludeReader)).ImplementedBy(typeof(FileSystemIncludeReader)));
container.Register(Component.For(typeof(IIncludeStorage)).ImplementedBy(typeof(StaticIncludeStorage)));
container.Register(Component.For(typeof(IKeyGenerator)).ImplementedBy(typeof(KeyGenerator)));
container.Register(Component.For(typeof(IIncludeHandlingSettings)).Instance(settings));
container.Register(Component.For(typeof(IHttpContextProvider)).Instance(httpContextProvider));
container.Register(Component.For(typeof(IIncludeCombiner)).ImplementedBy(typeof(IncludeCombiner)));
container.Register(Component.For(typeof(IncludeController)).ImplementedBy(typeof(IncludeController)).LifeStyle.Transient);
DependencyResolver.InitializeWith(new WindsorDependencyResolver(Container));
这样您就可以注册所有需要的依赖项。请注意,您需要 web 配置中的 includeHandler 部分。
<configSections>
<section name="includeHandling" type="MvcContrib.IncludeHandling.Configuration.IncludeHandlingSectionHandler, MvcContrib.IncludeHandling"/>
</configSections>
<includeHandling>
</includeHandling>
我希望这会有所帮助。