1
Reply

Confusion over Static class and Static method!

anup daware

anup daware

Feb 2 2007 3:52 AM
2.2k
Hi Group, I have a little confusion over the use of static class in C#. I have a static method in my static class. This method reads an xml and returns a collection of objects. This collection of objects can be different for different users. This method uses some non-static variables which are local to this method. Following is my static class: public static class ResponseXmlParser { public static Hashtable GetProductInfoList() { XmlTextReader xmlTextReader; bool isScheduleElement = false; bool isResultItem = false; ProductInfo productInfo= new ProductInfo(); Hashtable productInfoList = new Hashtable(); try { //Create an instance of the XMLTextReader. //MaterialSearchResponse.xml is different for different users. xmlTextReader = new XmlTextReader("MaterialSearchResponse.xml"); // Process the XML file. while (xmlTextReader.Read()) { if(productInfo == null) productInfo = new ProductInfo(); if (xmlTextReader.NodeType == XmlNodeType.Element) { if (xmlTextReader.Name == "CHECK_SCHEDULE_EX") isScheduleElement = true; if (xmlTextReader.Name.Equals("CHECK_ITEM_OUT")) isResultItem = true; if (!isScheduleElement && isResultItem) { switch (xmlTextReader.Name) { case "ITM_NUMBER": if (!xmlTextReader.IsEmptyElement) productInfo.ItemNumber = xmlTextReader.ReadElementContentAsInt(); break; ... ... .. case "REQ_QTY": if (!xmlTextReader.IsEmptyElement) productInfo.RequestedQuantity = xmlTextReader.ReadElementContentAsInt(); if (productInfo != null) productInfoList.Add(productInfo.IPC, productInfo); productInfo = null; break; } } } }//END OF WHILE } catch (XmlException ex){} catch (Exception ex){} finally { if (xmlTextReader!= null) xmlTextReader.Close(); } return productInfoList; } } My doubts are: 1. Does a non-static local variable of static methods works fine in multi-user environment (Web Application) where method is expected to return different results? 2. Is there any other performance a benefit using the static methods except the non-requirement of creation of object of class in which method resides? Thanks, Anup Daware

Answers (1)