ASP.NET: пользовательская динамически заполненная карта сайта (SiteMapProvider)

я пытаюсь написать свой первый оченьSiteMapProvider подкласс. Он предназначен для динамического заполнения с использованием множества различных поисков в базе данных, как и во всех примерах, которые янашел в сети.

Однако есть целый ряд вещей, которые мне не совсем понятны. Вот два моих первых вопроса:

ПочемуStaticSiteMapProvider используется практически у каждогопроект вместоSiteMapProvider? Так как класс содержит имястатический»Яу меня создается впечатление, что этоне так ... ну, динамично, как я хочу.Может ли кто-нибудь предоставить мне супер-минималистичныйSiteMapProvider подкласс, который заполняет карту, используя только статические данные, т.е. нет доступа к базе данных и т. д.?
 Russ Cam11 нояб. 2009 г., 18:01
у вас есть ссылки на ресурсы и примеры, которые вы прочитали?

Ответы на вопрос(1)

Решение Вопроса

SiteMapProvider может быть тотально динамичным. Например, он может выполнять динамический поиск только для узлов. По сравнению сStaticSiteMapProvider Вы должны знать всю структуру. Так что это вам решать, что выбрать.

Вы можете посмотреть наXmlSiteMapProviderЭто хороший примерстатический» карта провайдера.

public class CoolMapProvider : StaticSiteMapProvider
{
    public override SiteMapNode BuildSiteMap()
    {
        var root = new SiteMapNode(this, "test", "~/test.aspx");
        base.AddNode(root, null);

        base.AddNode(new SiteMapNode(this, "test-child", "~/test_child.aspx"), root);

        return root;
    }
}

Я не проверял это, но должно работать.

 Mike Chaliy12 нояб. 2009 г., 15:33
Ответ обновлен, вы должны использоватьbase.AddNode, RefardingGetRootDoneCoreЯ делал это веками раньше, поэтому не могу вспомнить все, извините ..
 Deniz Dogan11 нояб. 2009 г., 18:15
FWIW, мне пришлось переопределитьGetRootDoneCore как хорошо, чтобы это работало.
 Deniz Dogan11 нояб. 2009 г., 18:08
Все это выглядит очень хорошо, но не могли бы вы дать мне пример того, как я бы добавил подузлы в "тестовое задание"?
 Mike Chaliy12 нояб. 2009 г., 15:33
Забавно, на MSDN есть полный пример -msdn.microsoft.com/en-us/library/... , взглянуть.

Ваш ответ на вопрос