I was dismayed to discover that one could not configure a custom INavigationService at the web.config level. As part of my experiments to integrate PageFlow into a DotNetNuke module, I needed such customization, and wanted to continue to configure the providers in the web.config.
So, instead of kludging and compiling my own custom PageFlow libraries, I decided to modify the framework itself and allow customization of the INavigationService at the web.config level. Required only a small number of code changes, and ultimately the navigation service interface is configured as:
I created a work item in the WSCF project which discusses my changes in a little more detail. It essentially boiled down to adding a new string attribute (NavigationType) to the provider section class (defaulting to the existing Microsoft.Practices.PageFlow.Services.NavigationService), modifying the BuildProvider method to use this configuration value, and adding the extra parameter to the provider constructor.
Work item is located here.
Patch is located here.
Hope this helps anyone who needs a custom navigation service for the PageFlow block in the WCSF. I’ll be continuing to blog about my attempts to integrate this block into a DNN module and have it play nicely with the DNN framework.