Как получить имя файла Sitemap у провайдера Sitemap в ASP.NET - PullRequest
0 голосов
/ 06 октября 2010

Я создаю CacheDependency для файла, который использует мой поставщик SiteMap.Я хотел бы получить имя файла у моего провайдера карты сайта вместо жесткого его кодирования.Есть ли способ?

Редактировать

Да, я забыл упомянуть: XmlSiteMapProvider, который поставляется с ASP.NET

Редактировать 2

Отражатель показывает приватныйПоле члена с именем _filename, которое, насколько я могу судить, никак не раскрывается.

1 Ответ

1 голос
/ 06 октября 2010

Я знаю, что это опасно, но это сработало:

public static string GetFilename(this XmlSiteMapProvider provider)
{
    Type type = provider.GetType();
    FieldInfo filenameField = type.GetField("_filename", BindingFlags.Instance | BindingFlags.NonPublic);
    return (string)filenameField.GetValue(provider);
}

Я думаю, что более безопасный способ - просто прочитать файл Web.Config, чтобы получить значение.

...