Voici l'erreur que je reçois avec le code collé ci-dessous.Comment implémenter ConfigurationElement dans C#?
Impossible de créer l'instance de la classe ZDRCreatorTests.ZDRCreatorTests. Erreur: System.Configuration.ConfigurationErrorsException: La valeur par défaut de la propriété 'indexedFolder' ne peut pas être analysée. L'erreur est: Impossible de trouver un convertisseur qui prend en charge la conversion en/de chaîne pour la propriété « indexedFolder » de type « DirectoryInfo » ..
namespace ZDRCreator
{
public class ZDRCreatorElement : ConfigurationElement
{
// Create the element.
public ZDRCreatorElement()
{ }
// Get or set the IndexedFolder
[ConfigurationProperty("indexedFolder", DefaultValue = "", IsRequired = true)]
public DirectoryInfo IndexedFolder {
get { return (DirectoryInfo)this["indexedFolder"]; }
set { this["indexedFolder"] = value; }
}
// Get or set the OutputFolder
[ConfigurationProperty("outputFolder", DefaultValue = "", IsRequired = true)]
public DirectoryInfo OutputFolder {
get { return (DirectoryInfo)this["outputFolder"]; }
set { this["outputFolder"] = value; }
}
// Get or set the ZDRFile
[ConfigurationProperty("ZDRFile", DefaultValue = "", IsRequired = true)]
public FileInfo ZDRFile {
get { return (FileInfo)this["ZDRFile"]; }
set { this["ZDRFile"] = value; }
}
// Get or set the overwriteOutput flag
[ConfigurationProperty("overwriteOutput", DefaultValue = "false", IsRequired = true)]
public bool OverwriteOutput {
get { return (bool)this["overwriteOutput"]; }
set { this["overwriteOutput"] = value; }
}
// Get or set the OutputFile
[ConfigurationProperty("outputFile", DefaultValue = "", IsRequired = true)]
public String OutputFile {
get { return (String)this["outputFile"]; }
set { this["outputFile"] = value; }
}
// Get or set the OutputFile
[ConfigurationProperty("pathMask", DefaultValue = "", IsRequired = true)]
public String PathMask {
get { return (String)this["pathMask"]; }
set { this["pathMask"] = value; }
}
}
}
Je me rends compte de l'erreur est parce que je suis en train de mettre une chaîne dans un objet DirectoryInfo. Ma question est la suivante: suis-je supposé ne stocker que des chaînes ou des types de données primitifs lus à partir du xml, puis les convertir en d'autres objets une fois le xml lu? OU, y a-t-il un endroit où je peux aller de l'avant et les construire dans l'objet qui sera utilisé en interne. Où se produira la validation de l'intrant?
Tout ce que vous dites est entièrement vrai. CSD est un outil incroyable, mais est presque une version complète de Visual Studio derrière ces jours. Tellement triste de le voir languir. – QueueHammer