У меня есть веб-сервис, который делает веб-запрос на получение XML, анализирует его в пользовательский класс и возвращает этот класс.В качестве первого выбора я сделал вспомогательный класс «XMLParser» с необходимыми методами синтаксического анализа и сделал методы статическими, поскольку я не видел необходимости создавать экземпляр класса XMLParser.Но потом я начал задаваться вопросом, потребляет ли это больше памяти, чем должно.Предложения?
РЕДАКТИРОВАТЬ
По запросу, какой-то код.Я упростил код, чтобы перейти прямо к делу.
WebMethod, называемый
[WebMethod]
public List<CustomObject> GetObjectList(int xmlID)
{
string xmlURL = URLBuilder.GetXmlURL(xmlID); // Also static method that builds and returns an URL
HttpWebRequest xmlRequest = (HttpWebRequest)WebRequest.Create(xmlURL);
xmlRequest.Method = "GET";
try
{
using (Stream responseStream = xmlRequest.GetResponse().GetResponseStream())
{
XmlDocument XML = new XmlDocument();
XML.Load(responseStream);
return XMLParser.GetCustomObjectList(XML);
}
}
catch
{
throw;
}
}
И статический метод, о котором я беспокоюсь
public static List<CustomObject> GetCustomObjectList(XmlDocument XML)
{
XmlNodeList nodesList = XML.GetElementsByTagName("some_tag");
List<CustomObject> obj = new List<CustomObject>();
foreach (XmlNode listingNode in listingNodesList)
{
// Read Nodes and add CustomObjects to the obj List
}
return obj;
}
Это будет постоянно анализировать XML и возвращать списки CustomObject.При любом изменении каждого синтаксического анализа память выделяется и никогда не освобождается?