我使用NuGet的MvcSiteMapProvider
软件包在Unity DI上安装了MVC 5应用程序。我正在尝试在我的MvcSiteMapProvider_AttributesToIgnore
文件中使用忽略web.config
appSetting,如下所示
<add key="MvcSiteMapProvider_AttributesToIgnore" value="type" />
但是当显示我的站点地图时,网址会将被忽略的值作为查询字符串。
MvcSiteMapProvider
文档中有一节内容为
如果使用外部DI容器,可以在名为“attributesToIgnore”的参数中的ReservedAttributeNameProvider的构造函数中找到此设置,该参数类型为IEnumerable
我正在使用Unity,所以我想知道是否需要以某种方式将其添加到我的容器中,但我不知道如何。
关于如何忽略路线值的任何想法?
答案 0 :(得分:2)
您只需将设置添加到ReservedAttributeNameProvider,如文档中所述:
// Prepare for the sitemap node providers
this.Container.RegisterType<IXmlSource, FileXmlSource>("file1XmlSource", new InjectionConstructor(absoluteFileName));
this.Container.RegisterType<IReservedAttributeNameProvider, ReservedAttributeNameProvider>(
// Add the attributes to ignore here
new InjectionConstructor(new string[] { "type", "value2" }));
提示:您可以通过临时修改类并使用Intellisense查看参数来始终找出类具有的依赖关系。
new ReservedAttributeNameProvider(
// Type the above in Visual Studio and you will see the constructor parameters
// in a tooltip