Как добавить тип system.xml.xmldocument в состояние приложений

StackOverflow https://stackoverflow.com/questions/2227432

Вопрос

Я использую ASP.NET 3.5 и C#

Я должен добавить XMldocument в состояние моего приложения, чтобы каждый раз, когда мое приложение не получало доступ к файлу XML в моей файловой системе, я добавлю это на функции Application_start () в Global.asax.cs

Я добавляю это в состояние системы как:

protected void Application_Start(Object sender, EventArgs e)
{    
    string filePath = Server.MapPath("<path to my XML FILE>");
    XmlDocument xmlDoc = new XmlDocument();
    try
    {
        xmlTickerDoc.Load(filePath);
    }
    finally
    {
        HttpContext.Current.Application["xmlDoc"] = xmlDoc;
    }
}

В этом коде я стараюсь загрузить файл XML, и если файл не загружен из -за какой -либо проблемы, я хочу нулевой XMldocument.

Я получаю доступ к этому XMldocument как:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc = HttpContext.Current.Application["xmlDoc"];

ошибка, которую я получаю во время сборки

Не может неявно преобразовать тип «объект» в «System.xml.xmldocument». Явное преобразование существует

Итак, как назначить переменную httpcontext.current.application ["xmldoc"] как system.xml.xmldocument?

Это было полезно?

Решение 2

Получил ответ после небольшого гуглирования, простой, но может быть хитрым для разработчика PHP, работающего над C# (как это было в моем случае), мне просто пришлось явно бросить переменную состояния приложения в XMLDOCUMENT, который находится на месте:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc = HttpContext.Current.Application["xmlDoc"];

Я использовал :

XmlDocument xmlDoc = new XmlDocument();
xmlDoc = (XmlDocument) HttpContext.Current.Application["xmlDoc"];

и это становится надежным :)

Может ли кто -нибудь сказать мне, каково будет срок службы этой переменной ApplateState?

Другие советы

Ваша проблема здесь:

xmlDoc = HttpContext.Current.Application["xmlDoc"];

Пытаться

xmlDoc = HttpContext.Current.Application["xmlDoc"] as System.Xml.XmlDocument; 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top