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

cs_ordiminnie 29 Messages postés vendredi 10 octobre 2008Date d'inscription 22 juin 2009 Dernière intervention - 20 janv. 2009 à 18:01 - Dernière réponse : garnier54 158 Messages postés mardi 17 janvier 2006Date d'inscription 24 octobre 2017 Dernière intervention
- 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
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
cs_ordiminnie 29 Messages postés vendredi 10 octobre 2008Date d'inscription 22 juin 2009 Dernière intervention - 21 janv. 2009 à 11:17
3
Merci
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

Merci cs_ordiminnie 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_ordiminnie
garnier54 158 Messages postés mardi 17 janvier 2006Date d'inscription 24 octobre 2017 Dernière intervention - 7 mai 2012 à 11:31
0
Merci
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
Commenter la réponse de garnier54
garnier54 158 Messages postés mardi 17 janvier 2006Date d'inscription 24 octobre 2017 Dernière intervention - 7 mai 2012 à 16:09
0
Merci
pourtant j 'ai suivi ton exemple

ci joint mon web.config


<system.web>
<siteMap>







</siteMap>

nicolas
Commenter la réponse de garnier54

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.