Herramientas de usuario

Herramientas del sitio


highlevel:csharp:xtra2

¡Esta es una revisión vieja del documento!


C# Xtra (II)

Comunicación entre procesos

Canales IPC

Son utilizados para realizar una comunicación entre procesos que están corriendo en la misma máquina (IPC, inter-process communication). Y son más rápidos que utilizar rutinas sobre red, son algo parecidas a las Named Pipes existentes en el kernel32.dll.
Para poder usar dichos canales se necesitan los siguientes elementos:

  1. Objeto cliente.
  2. Objeto servidor.
  3. Objetos compartidos, referenciados tanto por el cliente como por el server pero que a la vez no referencien a ninguno de ellos.

También necesitaremos agregar una referencia a System.Runtime.Remoting.

El dominio de la aplicación

Un dominio de aplicación es un proceso dentro del sistema operativo donde una o más aplicaciones residen. Los objetos que se encuentran en el mismo dominio de aplicación se comunican directamente, en cambio, los que están en distintos dominios se comunican a partir del transporte de copias de estos objetos. Existe una clase (MarshalByRefObject) que sirve como clase base para las clases que intervengan la comunicación e intercambio de mensajes entre dominios de aplicación (si no heredasen serían marshal by value).

El cliente

El servidor

Configuración

Fichero app.config

El fichero que configura la aplicación es el app.config y se ha de encontrar en el directorio donde está el ensamblado ejecutable de la aplicación.

Leer un valor

Para leer el valor logFile de un fichero de configuración como el que sigue:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="logFile" value="log.txt"/>
  </appSettings>
</configuration>

Utilizaremos un objeto de la clase AppSettingsReader y su método GetValue:

new System.Configuration.AppSettingsReader().GetValue("logFile", typeof(String))

Agregar secciones

Podemos agregar secciones personalizadas al fichero, por ejemplo una sola para el tema de log, para ello deberemos declararla entro de la tag configSections indicando nombre y tipo como sigue:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section  name="log" type="System.Configuration.DictionarySectionHandler" />
  </configSections>
  <appSettings>
  </appSettings>
  <log>
    <add key="logFile" value="log.txt"/>
  </log>
</configuration>

Para leer estas secciones

highlevel/csharp/xtra2.1234265608.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)