Récupérer un provider de sitemap dans le web.config

Résolu
cs_ordiminnie Messages postés 29 Date d'inscription vendredi 10 octobre 2008 Statut Membre Dernière intervention 22 juin 2009 - 20 janv. 2009 à 18:01
garnier54 Messages postés 158 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 9 décembre 2018 - 7 mai 2012 à 16:09
Bonjour,

j'ai suivi les conseils de JesusOnline sur ce topic très proche de mon problème http://www.aspfr.com/forum/sujet-EXTRAIRE-DONNEES-WEB-CONFIG_1097346.aspx#2 mais sans succès !

j'ai deux XmlSiteMapProvider défini dans mon web.config,comme cela :
<system.web>
    <siteMap enabled="true" defaultProvider="SitemapDefault">
      
        <clear/>
        
        
      

    </siteMap>


Dans mon masterpage, je récupère la valeur d'une variable Session[language] et selon sa valeur, je voudrais modifier la propriété SiteMapProvider de mon SiteMapDataSource ; MAIS COMMENT récupérer ce %*¨£%¨de provider ? Pour l'instant, j'utilise la méthode GetSection de la classe ConfigurationManager.

Voilà les erreurs que j'obtiens :
Si j'essai d'aller direct sur la bonne section, comme ça :XmlSiteMapProvider section (XmlSiteMapProvider)ConfigurationManager.GetSection("system.web/siteMap/providers"); > getsection me renvoie un null...pourquoi ?

Je me suis dit que la section était trop en profondeur alors j'ai voulu faire comme ça (afin de pointer par après sur section.providers[0]) :SiteMap section (SiteMap)ConfigurationManager.GetSection("system.web/siteMap");> mais pas possible de déclarer un objet sitemap comme ça....

Ca fait depuis la journée que je suis sur cette gestion de plusieurs sitemap...me parlez pas de localization, ça correspond pas à ce que je veux faire (et c'est bien triste...). Là je ne vois pas ce qui cloche....enfin si, mais je vois pas comment résoudre.

En bref : comment récupérer un provider en particulier dans le web.config ????

Merci de m'aider, je débute en asp.net (et en programmation de manière générale....la POO c'est un peu bancal mais je travaille mon équilibre ! )

ps: je suis en webform 3.5

3 réponses

cs_ordiminnie Messages postés 29 Date d'inscription vendredi 10 octobre 2008 Statut Membre Dernière intervention 22 juin 2009
21 janv. 2009 à 11:17
ah ben finalement, je me réponds moi-même....ma solution est à pleurer de simplicité (je suis pourtant bien sûre d'avoir commencé par là...ça fonctionnait pas, me semble-t-il ??!!)

Bref, j'ai pas du tout besoin d'aller dans le web.config, je peux indiquer directement le nom du provider voulu...ce qui nous donne :
SiteMapDataSourcePrincipal.SiteMapProvider = "SitemapFr";

Voilà, ensuite je change juste le string en fonction des cases (je suis dans un switch).

Enfin, ça m'aura toujours permis de découvrir la classe Configuration.

Bye
3
garnier54 Messages postés 158 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 9 décembre 2018
7 mai 2012 à 11:31
bonjour,

pour moi ca marche pas (je suis en vb.net)


sur
SiteMapDataSource1.SiteMapProvider = "Admin"
ca plante avce le message

{"La référence d'objet n'est pas définie à une instance d'un objet."}

avez vous une idee merci

nicolas
0
garnier54 Messages postés 158 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 9 décembre 2018
7 mai 2012 à 16:09
pourtant j 'ai suivi ton exemple

ci joint mon web.config


<system.web>
<siteMap>







</siteMap>

nicolas
0
Rejoignez-nous