Su respuesta para una creación no manual de un app.config es la pestaña Propiedades / Configuración del proyecto de Visual Studio.
Cuando agrega una configuración y la guarda, su app.config se creará automáticamente. En este punto, se genera un montón de código en un espacio de nombres { yourclasslibrary .Properties } que contiene las propiedades correspondientes a su configuración. La configuración en sí se colocará en la configuración de applicationSettings de app.config.
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="ClassLibrary.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<ClassLibrary.Properties.Settings>
<setting name="Setting1" serializeAs="String">
<value>3</value>
</setting>
</BookOneGenerator.Properties.Settings>
</applicationSettings>
Si agregó una configuración de ámbito de aplicación llamada Configuración1 = 3, se creará una propiedad llamada Configuración1. En la compilación, estas propiedades se están convirtiendo en parte del binario y están decoradas con un DefaultSettingValueAttribute que se establece en el valor que especificó en el momento del desarrollo.
[ApplicationScopedSetting]
[DebuggerNonUserCode]
[DefaultSettingValue("3")]
public string Setting1
{
get
{
return (string)this["Setting1"];
}
}
Por lo tanto, como en el código de su biblioteca de clases, hace uso de estas propiedades, si no existe una configuración correspondiente en el archivo de configuración de tiempo de ejecución, utilizará el valor predeterminado. De esa manera, la aplicación no fallará por no tener una entrada de configuración, lo cual es muy confuso la primera vez que no sabes cómo funcionan estas cosas. Ahora, se está preguntando cómo se puede especificar nuestro propio valor nuevo en una biblioteca implementada y evitar que se utilice el valor de configuración predeterminado.
Eso sucederá cuando configuremos correctamente el archivo app.config del ejecutable. Dos pasos. 1. le informamos que tendremos una sección de configuración para esa biblioteca de clases y 2. con pequeñas modificaciones pegamos el archivo de configuración de la biblioteca de clases en la configuración ejecutable. (hay un método en el que puede mantener el archivo de configuración de la biblioteca de clases externo y simplemente hacer referencia a él desde la configuración del ejecutable.
Entonces, puede tener un app.config para una biblioteca de clases, pero es inútil si no lo integra correctamente con la aplicación principal. Vea aquí lo que escribí hace algún tiempo: enlace