Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 5th, 2012  |  syntax: None  |  size: 1.88 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Configuration File Setup - Need input
  2. <XmlDoc>
  3.  
  4.     <DefaultSettings>
  5.         <ExitProgramMessage>Y</ExitProgramMessage>
  6.     <DefaultSettings>
  7.  
  8.     <Company>
  9.         <ExitProgramMessage>N</ExitProgramMessage>
  10.     <Company>
  11.  
  12.     <Workstation>
  13.         <ExitProgramMessage>N</ExitProgramMessage>
  14.     </Workstation>
  15.  
  16.     <User>
  17.         <ExitProgramMessage>Y</ExitProgramMessage>
  18.     <User>
  19.  
  20. <XmlDoc>
  21.        
  22. Settings settings = new Settings(file);
  23. var company = settings["Company"].ExitProgramMessage;
  24.        
  25. using(Settings settings = new Settings(file))
  26. {
  27.     settings["Workstation"].ExitProgramMessage = "Y";
  28. }
  29.        
  30. public class Settings : IDisposable
  31. {
  32.     XElement self;
  33.     FileInfo file;
  34.     public Settings(FileInfo file)
  35.     {
  36.         if (file.Exists)
  37.             self = XElement.Load(file.FullName);
  38.         else
  39.             self = new XElement("XmlDoc");
  40.         this.file = file;
  41.     }
  42.  
  43.     public Setting this[string name]
  44.     {
  45.         get
  46.         {
  47.             XElement x = self.Element(name);
  48.             if (null == x)
  49.                 self.Add(x = new XElement(name));
  50.             return new Setting(x, name);
  51.         }
  52.     }
  53.  
  54.     public void Dispose()
  55.     {
  56.         self.Save(file.FullName);
  57.     }
  58. }
  59.  
  60. public class Setting
  61. {
  62.     XElement self;
  63.     string name;
  64.     public Setting(XElement xsetting, string name)
  65.     {
  66.         self = xsetting;
  67.         this.name = name;
  68.     }
  69.  
  70.     public string ExitProgramMessage
  71.     {
  72.         get
  73.         {
  74.             XElement x = self.Element("ExitProgramMessage");
  75.             if (null == x)
  76.                 return "Unknown"; // default value?
  77.             return (string)x;
  78.         }
  79.         set
  80.         {
  81.             XElement x = self.Element("ExitProgramMessage");
  82.             if (null == x)
  83.                 self.Add(new XElement("ExitProgramMessage", value));
  84.             else
  85.                 x.Value = value;
  86.         }
  87.     }
  88.  
  89.     public string Name { get { return name; } }
  90. }