Comparteix a través de


SiteMap.Providers Propiedad

Definición

Obtiene una colección de sólo lectura de objetos SiteMapProvider con nombre que están disponibles para la clase SiteMap.

public:
 static property System::Web::SiteMapProviderCollection ^ Providers { System::Web::SiteMapProviderCollection ^ get(); };
public static System.Web.SiteMapProviderCollection Providers { get; }
static member Providers : System.Web.SiteMapProviderCollection
Public Shared ReadOnly Property Providers As SiteMapProviderCollection

Valor de propiedad

SiteMapProviderCollection de objetos SiteMapProvider con nombre.

Excepciones

La característica de mapa del sitio no está habilitada.

El proveedor predeterminado especificado en la configuración no existe.

Sólo se admite esta característica cuando se ejecuta, como mínimo, con un nivel de confianza bajo.

Ejemplos

En el ejemplo de código siguiente se muestra cómo recuperar la Providers colección de la SiteMap clase y, a continuación, recorrerla en iteración.

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<SCRIPT runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
    // Navigate the SiteMap built by the default SiteMapProvider.
    Response.Write(SiteMap.RootNode.ToString() + "<BR>");

    Response.Write(SiteMap.RootNode.Url + "<BR>");
    Response.Write(SiteMap.RootNode.Title + "<BR>");

    foreach (SiteMapNode sitemapnode in SiteMap.RootNode.ChildNodes)
    {
        // Iterate through the ChildNodes SiteMapNodesCollection
        // maintained by the RootNode.
        Response.Write(sitemapnode.Url + "<BR>" );
    }

    IEnumerator providers = SiteMap.Providers.GetEnumerator();
    while (providers.MoveNext())
    {
        Response.Write(providers.Current);
        Response.Write("   ");
        Response.Write("<BR>");
    }
}
</SCRIPT>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<SCRIPT runat="server">
Private Sub Page_Load(Sender As Object, E As EventArgs)

    ' Navigate the SiteMap built by the default SiteMapProvider.
    Response.Write(SiteMap.RootNode.ToString() & "<BR>")

    Response.Write(SiteMap.RootNode.Url & "<BR>")
    Response.Write(SiteMap.RootNode.Title & "<BR>")

    Dim sitemapnode As SiteMapNode
    For Each sitemapnode In SiteMap.RootNode.ChildNodes
        ' Iterate through the ChildNodes SiteMapNodesCollection
        ' maintained by the RootNode.
        Response.Write(sitemapnode.Url & "<BR>" )
    Next

    Dim providers As IDictionaryEnumerator = SiteMap.Providers.GetEnumerator()
    While (providers.MoveNext())
        Response.Write(providers.Current)
        Response.Write("   ")
        Response.Write("<BR>")
    End While
End Sub ' Page_Load

</SCRIPT>

Si tiene más que el proveedor predeterminado configurado para el sitio, verá que se muestra cada proveedor. Por ejemplo, si usa el ejemplo Microsoft proveedor de access (consulte StaticSiteMapProvider), verá la siguiente salida:

XmlSiteMapProvider   System.Web.XmlSiteMapProvider  
AccessSiteMapProvider   Samples.AspNet.AccessSiteMapProvider  

Comentarios

Los proveedores de mapa de sitio que aparecen en la Providers colección son los que se especifican en la jerarquía de configuración para inicializar la SiteMap clase. Solo se garantiza que el proveedor predeterminado (identificado por la Provider propiedad) lo use durante la SiteMap inicialización; la presencia de un proveedor en la Providers colección significa que se especificó en la configuración y estaba disponible durante la inicialización.

Se aplica a

Consulte también