Tengo este extraño problema ... en mi código si establezco el valor de IsRequired en falso o verdadero, entonces se mantiene falso. Sin embargo, si pongo un DefaultValue, ¿funciona?C# - ConfigurationSection isRequired attribute
El código no es de trabajo:
public class FtpSettingsSection : ConfigurationSection
{
[ConfigurationProperty("host", IsRequired = true)]
public HostElement Host
{
get { return (HostElement)this["host"]; }
set { this["host"] = value; }
}
}
public class HostElement : ConfigurationElement
{
[ConfigurationProperty("URL", IsRequired = true)]
public string URL
{
get { return (string)this["URL"]; }
set { this["URL"] = value; }
}
}
y el código de trabajo es:
public class FtpSettingsSection : ConfigurationSection
{
[ConfigurationProperty("host", DefaultValue = "", IsRequired = true)]
public HostElement Host
{
get { return (HostElement)this["host"]; }
set { this["host"] = value; }
}
}
public class HostElement : ConfigurationElement
{
[ConfigurationProperty("URL", DefaultValue = "", IsRequired = true)]
public string URL
{
get { return (string)this["URL"]; }
set { this["URL"] = value; }
}
}
¿Cómo es que necesito fijar ValorPredeterminado a ""?
El primer ejemplo de código dosent arroja alguna excepción, incluso si la propiedad del host no está definida en el archivo de configuración? – ebb
El primer ejemplo lanzará una excepción, el segundo con el atributo predeterminado no lo hará. – dexter
En realidad, probé esto y el PRIMER ejemplo no lanza una excepción. En una aplicación de consola de prueba, IsRequired parece estar siendo ignorado. Si se requiere, no debe poner el valor predeterminado porque entonces en realidad no es necesario. Si lo marca IsRequired = true, debe arrojar una excepción si no proporciona un valor predeterminado, pero no lo hace. Probé en .Net 4. –