さて、必要なコンポーネントを見つけるためにMvcContrib.IncludeHandling
MvcContribを使用します。DependencyResolver
十分に文書化されていません(詳細についてはサンプルサイトを参照してください。ただし、その場合はカスタムインジェクターを使用します)。
たとえば、 NInjectを使用MvcContrib.Castle
するWindsorDependencyResolver
ために模倣できるそのIoCコンテナがあります(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>
これがお役に立てば幸いです。