Как добавить тип system.xml.xmldocument в состояние приложений
-
19-09-2019 - |
Вопрос
Я использую 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;