Archivos DLL configurables.

06/02/2009 - 10:54 por Rafael Villaran. RAVIPE | Informe spam
Hola a todos.
Estoy creando una librería *.dll en C# para distribuir en los equipos de mi
empresa y como referencia en nuestra aplicaciones.
¿Existe alguna posibilidad de crearla configurable?. O sea, enlazar la
librería a un archivo XML, por ejemplo, con los parámetros de la misma. Al
instanciar la clase que contiene la librería esta tomaría los valores de su
archivo de configuración.
Al registrar la librería nos debería avisar si no se encuentra el archivo de
configuración o de dependencias.
Espero que la idea haya quedado clara.
Muchas gracias a todos.
Saludos.
rafael villarán
 

Leer las respuestas

#1 RFOG
06/02/2009 - 11:18 | Informe spam
Hasta donde yo sé, los ensamblados .NET en forma DLL no tienen el
dllmain de las nativas, por lo que hacerlo de forma automática no creo
que se pueda. Repito que no estoy seguro, quizás se pueda de alguna
forma y el .NET tenga algún mecanismo para disparar automáticamente
algo durante la carga que yo desconozco.

Pero a fin de cuentas una DLL no es más que un programa "muerto" que
toma vida cuando una aplicación enlaza con él, de forma que allí
dentro puedes poner lo que quieras. Entiendo que esa DLL va a ser una
biblioteca común con código compartido, por lo que será cargada por
varias aplicaciones de forma simultánea. En C++ existen mecanismos
para permitir almacenamiento local y/o global compartido, en .NET creo
que todas esas florituras no están y todo es local a cada aplicación
que cargue la DLL...

La idea es entonces implementar una clase estática dentro de la DLL
que se encargue de inicializar la DLL, y si no se ha llamado a esa
función nada de la dll funcionará. Algo así:

public static class InitAssembly
{
internal m_bIsInitialized=false;
public void InitAssemby(){m_bIsInitialized=true;}
}

public class Hola
{
public void Hola()
{
if(!m_bIsInitialized)
throw new AssemblyNotInitialized("Inicializa
la DLL");
}
}

Etc.

Incluso podrías implementar un Singleton para que sólo se pueda llamar
al método de iniclialización una sola vez.

De todos modos, son sólo ideas. Quizás estos mecanismos ya estén
disponibles en .NET y yo lo desconozco.

On Fri, 6 Feb 2009 01:54:02 -0800, Rafael Villaran. RAVIPE
wrote:

Hola a todos.
Estoy creando una librería *.dll en C# para distribuir en los equipos de mi
empresa y como referencia en nuestra aplicaciones.
¿Existe alguna posibilidad de crearla configurable?. O sea, enlazar la
librería a un archivo XML, por ejemplo, con los parámetros de la misma. Al
instanciar la clase que contiene la librería esta tomaría los valores de su
archivo de configuración.
Al registrar la librería nos debería avisar si no se encuentra el archivo de
configuración o de dependencias.
Espero que la idea haya quedado clara.
Muchas gracias a todos.
Saludos.
rafael villarán


ÿþM

Preguntas similares