Asp.net mvc 如何一次使用多个全局IsItemPaNodeVisibilityProvider实现?

Asp.net mvc 如何一次使用多个全局IsItemPaNodeVisibilityProvider实现?,asp.net-mvc,castle-windsor,structuremap,mvcsitemapprovider,Asp.net Mvc,Castle Windsor,Structuremap,Mvcsitemapprovider,我正在尝试将以下StructureMap代码从MvcSiteMapProvider官方文档移植到Castle Windsor // Visibility Providers // Explicitly set the visibility providers, using CompositeSiteMapNodeVisibilityProvider to combine the AclModuleVisibilityProvider // with all other ISiteMapNode

我正在尝试将以下StructureMap代码从MvcSiteMapProvider官方文档移植到Castle Windsor

// Visibility Providers

// Explicitly set the visibility providers, using CompositeSiteMapNodeVisibilityProvider to combine the AclModuleVisibilityProvider
// with all other ISiteMapNodeVisibilityProvider implementations.
this.For<ISiteMapNodeVisibilityProviderStrategy>().Use<SiteMapNodeVisibilityProviderStrategy>()
    .EnumerableOf<ISiteMapNodeVisibilityProvider>().Contains(x =>
        {
            x.Type<CompositeSiteMapNodeVisibilityProvider>()
                .Ctor<string>("instanceName").Is("filteredAndTrimmedAndCustom")
                .EnumerableOf<ISiteMapNodeVisibilityProvider>().Contains(y =>
                    {
                        // Note that the visibility providers are executed in
                        // the order specified here, but execution stops when
                        // the first visibility provider returns false.
                        y.Type<FilteredSiteMapNodeVisibilityProvider>();
                        y.Type<TrimEmptyGroupingNodesVisibilityProvider>();
                        y.Type<CustomVisibilityProvider>();
                    });
        })
    .Ctor<string>("defaultProviderName").Is("filteredAndTrimmedAndCustom");

我没有正确地移植代码吗?

我没有为
OnComponentCollection
使用正确的重载方法。
CompositeSiteMapNodeVisibilityProvider的构造函数有一个名为
siteMapNodeVisibilityProviders
的参数

.DependsOn(Dependency.OnComponentCollection(
    "siteMapNodeVisibilityProviders",
    typeof(FilteredSiteMapNodeVisibilityProvider),
    typeof(TrimEmptyGroupingNodesVisibilityProvider), 
    typeof(PropertyTypeGlobalNodeVisibilityProvider)))
.DependsOn(Dependency.OnComponentCollection(
    typeof(FilteredSiteMapNodeVisibilityProvider),
    typeof(TrimEmptyGroupingNodesVisibilityProvider),
    typeof(CustomVisibilityProvider))));
.DependsOn(Dependency.OnComponentCollection(
    "siteMapNodeVisibilityProviders",
    typeof(FilteredSiteMapNodeVisibilityProvider),
    typeof(TrimEmptyGroupingNodesVisibilityProvider), 
    typeof(PropertyTypeGlobalNodeVisibilityProvider)))