Existuje nějaký způsob, jak používat XmlSiteMapProvider v aplikaci WinForm / Console / VSTest?

hlasů
3

Zajímalo by mě, zda je možné obejít použitím standardního XmlSiteMapProvider v rámci aplikace, která není ASP.NET, jako WinForm / Console nebo v mém případě, VS unit test jedné.

Následující kód se nezdaří, protože nelze vytvořit cestu k .sitemapsouboru uvnitř vlastní GetConfigDocumentmetodu.

XmlSiteMapProvider provider = new XmlSiteMapProvider();
NameValueCollection providerAttributes = new NameValueCollection();
providerAttributes.Add(siteMapFile, Web.sitemap);
provider.Initialize(XmlSiteMapReader, providerAttributes);
provider.BuildSiteMap();

Cítím, že správným řešením je napsat jiného poskytovatele.

Položena 23/09/2008 v 23:20
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
2

Nevidím důvod, proč ne. Je to jen poskytovatel, který implementuje rozhraní. Nesmíte potřebovat mnoho funkcí, ale můžete přistupovat k rozhraní API pro to, co poskytuje. Vaše WinForms obrazovky lze jednoduše použít adresy URL pro identifikaci, takže si můžete určit své místo v hierarchii.

Co budete muset udělat, je vytvořit vlastní implementaci poskytovatele, protože bude používat HttpContext dostat URL aktuálního webového požadavku určit aktuální umístění, zatímco budete muset dostat tuto hodnotu odlišně. To je to, co by mohlo být obtížné, protože vaše WinForm aplikace, kterou lze zobrazovat více oken v čase. Pokud víte, že existuje pouze jedno okno zobrazující najednou můžete použít statickou hodnotu, která je nastavena před přístupem k SiteMap API.

Nyní máte na otázku hodnotu pomocí rozhraní API, pokud máte dělat všechny práce. Tam nemusí být dostatečná dávka, aby se to vyplatilo.

Odpovězeno 24/09/2008 v 21:29
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more