gpt4 book ai didi

asp.net - 有没有办法在 WinForm/Console/VSTest 应用程序中使用 XmlSiteMapProvider?

转载 作者:行者123 更新时间:2023-12-02 14:12:02 25 4
gpt4 key购买 nike

我想知道是否有一种解决方法可以在非 asp.net 应用程序中使用标准 XmlSiteMapProvider,例如 WinForm/Console,或者在我的例子中是 VS 单元测试。

以下代码失败,因为它无法在私有(private) GetConfigDocument 方法内创建指向 .sitemap 文件的路径。

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

我认为正确的解决方案是编写另一个提供程序。

最佳答案

我不明白为什么不。它只是一个实现接口(interface)的提供者。您可能不需要很多功能,但您可以访问 API 以获取它为您提供的功能。您的 WinForms 屏幕可以简单地使用 URL 进行识别,以便您可以确定您在层次结构中的位置。

您可能需要做的是创建提供程序的自定义实现,因为它将使用 HttpContext 获取当前 Web 请求的 Url 来识别当前位置,而您需要以不同方式获取该值。这可能很棘手,因为您的 WinForm 应用程序可能会同时显示多个窗口。如果您知道一次仅显示一个窗口,则可以使用在访问 SiteMap API 之前设置的静态值。

如果您必须完成所有工作,那么现在您必须质疑使用 API 的值(value)。可能没有足够的好处使其值得。

关于asp.net - 有没有办法在 WinForm/Console/VSTest 应用程序中使用 XmlSiteMapProvider?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/124280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com