XmlSiteMapProvider.BuildSiteMap Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Carrega a informação do mapa do site a partir de um ficheiro XML e constrói-a em memória.
public:
override System::Web::SiteMapNode ^ BuildSiteMap();
public override System.Web.SiteMapNode BuildSiteMap();
override this.BuildSiteMap : unit -> System.Web.SiteMapNode
Public Overrides Function BuildSiteMap () As SiteMapNode
Devoluções
Devolve a raiz SiteMapNode da estrutura de navegação do mapa do sítio.
Exceções
Não XmlSiteMapProvider foi inicializado corretamente.
-ou-
A siteMapFile é analisado para um <siteMapNode> que não é único.
-ou-
O ficheiro especificado por o siteMapFile não tem a extensão de nome .sitemap.
-ou-
O ficheiro especificado por o siteMapFile não existe.
-ou-
Um fornecedor configurado em o provider<siteMapNode> de devolve um nó raiz nulo.
O siteMapFile é especificado, mas o caminho está fora da estrutura atual de diretórios da aplicação.
Há um erro ao carregar o ficheiro de configuração.
-ou-
O elemento superior do ficheiro de configuração não named <siteMap>é .
-ou-
Existem mais do que um nó superior no ficheiro de configuração.
-ou-
Um filho de o <siteMap> tem um nome diferente de <siteMapNode>.
-ou-
Um atributo inesperado é analisado para o <siteMapNode>.
-ou-
Os subelementos estão aninhados por baixo de um <siteMapNode> onde o provider está definido.
-ou-
Os roles de contêm <siteMapNode> caracteres que não são válidos.
-ou-
A url é analisado para um <siteMapNode> que não é único.
-ou-
A SiteMapNode foi encontrado com um valor duplicado para Key.
-ou-
O ResourceKey ou Title foi especificado em um SiteMapNode ou um custom atributo definido para o nó continha uma expressão de recurso explícita.
-ou-
Uma expressão de recurso explícita era aplicada quer ao Title ou Description quer a um custom atributo de a SiteMapNode , mas a informação explícita não era válida.
-ou-
Ocorreu um erro ao analisar o Url de um SiteMapNode.
Um fornecedor nomeado não pode ser encontrado na coleção atual de fornecedores de mapas do sítio.
Uma <siteMapNode> referência a um ficheiro de mapa de sítios contém uma cadeia vazia para o siteMapFilearquivo .
A siteMapFile de um <siteMapNode> usa um caminho físico.
-ou-
Ocorreu um erro ao tentar analisar o caminho virtual para o ficheiro especificado no siteMapFilearquivo .
Exemplos
O exemplo de código seguinte demonstra como criar uma nova instância da XmlSiteMapProvider classe e inicializá-la para construir um mapa de site a partir de dados XML.
<%@ Page Language="c#" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<SCRIPT runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
// Create an instance of the XmlSiteMapProvider class.
XmlSiteMapProvider testXmlProvider = new XmlSiteMapProvider();
NameValueCollection providerAttributes = new NameValueCollection(1);
providerAttributes.Add("siteMapFile","test.sitemap");
// Initialize the provider with a provider name and file name.
testXmlProvider.Initialize("testProvider", providerAttributes);
// The BuildSiteMap method is implicitly called when the
// RootNode property is accessed.
// Prints "/myvirtualdirectory/WebForm1.aspx"
Response.Write(testXmlProvider.RootNode.Url + "<BR>");
// Prints "/myvirtualdirectory/WebForm2.aspx"
Response.Write(testXmlProvider.CurrentNode.Url + "<BR>");
}
O exemplo de código anterior utiliza um ficheiro XML localizado na raiz virtual da aplicação ASP.NET. O ficheiro tem o seguinte formato:
<siteMap>
<siteMapNode title="RootNode" description="The root page." url="WebForm1.aspx">
<siteMapNode title="CurrentNode" description="Some sub page." url="WebForm2.aspx"/>
</siteMapNode>
</siteMap>
Observações
O BuildSiteMap método é chamado para carregar e construir o mapa do site a partir de armazenamento persistente.
Para o comportamento padrão quando o ajuste de segurança está ativado, veja "Observações" em IsAccessibleToUser.
Depois de o XmlSiteMapProvider objeto analisar e carregar os dados do mapa do site, todos os objetos e SiteMapNode coleções carregados SiteMapNodeCollection são tornados apenas de leitura. Quando analisa XmlSiteMapProvider a Url propriedade a partir de um ficheiro de mapa de site, converte URLs relativos à aplicação, bem como URLs relativos, em caminhos virtuais absolutos da aplicação.
Subscreve XmlSiteMapProvider notificações de alterações de ficheiros para o ficheiro .sitemap. Se for feita alguma alteração ao ficheiro .sitemap, o XmlSiteMapProvider é recarregado e a estrutura do mapa do site é reconstruída.