I have read a good 15+ articles and tutorials on creating custom configuration sections, and I can't seem to 'get' the custom configuration. ANY help would be appreciated, since I am clearly missing something. It is a simple program to schedule backups and specify a list of source/destination directories.
I am receiving the error: Unrecognized element 'add'. (BattistoneBackup.exe.Config line 8)
My App.config file looks like this:
type="Battistone.WindowsService.BattistoneBackup.BackupDirectorySection, BattistoneBackup, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/> type="Battistone.WindowsService.BattistoneBackup.BackupScheduleSection, BattistoneBackup, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/> SourceDirectory="C:\Dustin\Development\Visual Studio\Projects\Battistone\Sports\" DestinationDirectory="C:\Dustin\BACKUPTEST\Development\Visual Studio\Projects\Battistone\Sports\"/> SourceDirectory="C:\Dustin\Development\Visual Studio\Projects\Battistone\Builds\" DestinationDirectory="C:\Dustin\BACKUPTEST\Development\Visual Studio\Projects\Battistone\Builds\"/>
|
I am using the following line of code to retrieve the configuration:
BackupDirectorySection oBackupDirectoriesConfigurationSection = BackupDirectorySection.GetConfig();
|
Here are the classes to wrap the configuration above (all inside the "Battistone.WindowsService.BattistoneBackup" namespace):
public class BackupDirectorySection : ConfigurationSection { public static BackupDirectorySection GetConfig() { return ConfigurationManager.GetSection("backupDirectories") as BackupDirectorySection; }
[ConfigurationProperty("backupDirectories")] public BackupDirectoryConfigurationCollection BackupDirectories { get { return this["backupDirectories"] as BackupDirectoryConfigurationCollection; } } }
public class BackupDirectoryConfigurationCollection : ConfigurationElementCollection { public BackupDirectoryConfiguration this[int index] { get { return base.BaseGet(index) as BackupDirectoryConfiguration; } set { if (base.BaseGet(index) != null) { base.BaseRemoveAt(index); } this.BaseAdd(index, value); } }
protected override ConfigurationElement CreateNewElement() { return new BackupDirectoryConfiguration(); }
protected override object GetElementKey(ConfigurationElement element) { return ((BackupDirectoryConfiguration)element).Name; } }
public class BackupDirectoryConfiguration : ConfigurationElement { [ConfigurationProperty("Name")] public string Name { get { return (string)this["Name"]; } set { this["Name"] = value; } }
[ConfigurationProperty("SourceDirectory")] public string SourceDirectory { get { return (string)this["SourceDirectory"]; } set { this["SourceDirectory"] = value; } }
[ConfigurationProperty("DestinationDirectory")] public string DestinationDirectory { get { return (string)this["DestinationDirectory"]; } set { this["DestinationDirectory"] = value; } } }
|
mydealboxPosted Jan 17, 2011, 5:59 PM
What do you mean use Xml Namespaces? Where? And why shouldn't I be able to create my own? Sorry, this just doesn't make sense.
Thank you for the help
Amit ChoudharyPosted Jan 16, 2011, 11:58 PM
Try using XML Namespaces to get rid of this error.
Thanks