Академический Документы
Профессиональный Документы
Культура Документы
1. Los ensamblados
Visual C# ha sido diseñado con el Framework .NET, lo que le permite disfrutar de muchas ventajas,
en particular en términos de seguridad durante la ejecución y la gestión de la memoria. También
permite esta imbricación asegurar la compatibilidad entre código escrito en los diferentes lenguajes
disponibles. Así puede utilizar en Visual C# elementos diseñados con otros lenguajes (e
inversamente), de manera totalmente transparente sin que tenga ni siquiera que preocuparse del
lenguaje en el cual ha sido desarrollado el elemento.
Los ensamblados se almacenan en archivos .exe o .dll, según el tipo. Son generados simplemente
por la compilación del proyecto correspondiente.
Son autodescriptivos, ya que contienen los datos necesarios para su utilización en otro proyecto.
Estos datos están contenidos en el manifestodel ensamblado. El manifestocontiene, entre otras
cosas:
una lista de los archivos utilizados por el ensamblado (por ejemplo, los otros ensamblados
utilizados por éste, los recursos de mapa de bits, etc.).
Para poder utilizar un ensamblado en un proyecto, añada simplemente una referencia hacia el
ensamblado. Para ello, utilice el menú contextual del archivo de referencia del proyecto.
http://www.eni-training.com/client_net/mediabook.aspx?idR=69383 1/8
24/4/2014 ENI Training - Libro online
El siguiente cuadro de diálogo permite entonces elegir las referencias que hay que añadir al
proyecto.
Las diferentes pestañas permiten elegir, según la categoría, el tipo de referencia que hay que
añadir al proyecto:
.NET
Solución
COM
Examinar
http://www.eni-training.com/client_net/mediabook.aspx?idR=69383 2/8
24/4/2014 ENI Training - Libro online
Ejemplo
System.Windows.Forms.ListBox listaWindows;
System.Web.UI.WebControls.ListBox listaWeb;
Sin embargo, la utilización del nombre plenamente cualificado puede hacer pesada la escritura del
código. Es posible utilizar la palabra reservada usingpara aligerar el código. Indica al compilador
que ciertos espacios de nombres están sobreentendidos.
Las instrucciones usingdeben ser las primeras líneas de código de un archivo fuente Visual C#.
La instrucción using propone una solución elegante creando un alias durante la importación del
espacio de nombres.
using ctrlWin=System.Windows.Forms;
using ctrlWeb=System.Web.UI.WebControls;
ctrlWin.ListBox listaWindow;
ctrlWeb.ListBox listaWeb;
Esta solución autoriza la utilización de nombres de una longitud razonable evitando los conflictos.
Cabe observar también que, según el tipo de proyecto en el cual está trabajando, se realizan
referencias e importaciones por defecto.
Todos los elementos declarados en este bloque de código serán accesibles al darles un prefijo con
http://www.eni-training.com/client_net/mediabook.aspx?idR=69383 3/8
24/4/2014 ENI Training - Libro online
namespace Facturacion
{
class Tarificacion
{
public static double CalculoNETO(double Pbruto, double Tasa)
{
return Pbruto * (1 + (Tasa / 100));
}
}
}
En nuestro ejemplo, la función calculoNETOes, por lo tanto, accesible con el siguiente código:
Utilice la misma técnica en el caso de espacios de nombres anidados; como en el siguiente ejemplo:
http://www.eni-training.com/client_net/mediabook.aspx?idR=69383 4/8
24/4/2014 ENI Training - Libro online
namespace Gestion
{
namespace Paga
{
public class Salario
{
}
}
namespace Facturacion
{
public class Factura
{
}
}
}
3. Los atributos
Los atributos son marcas que puede colocar en su código con el fin de añadir datos adicionales a los
elementos de su aplicación.
Se guardan en los metadatos del ensamblado durante la compilación del proyecto. El runtime utiliza
los metadatos para gestionar la depuración, el seguimiento de las versiones, la compilación y otros
datos relativos a la utilización de su código. Los atributos pueden aplicarse a un ensamblado, un
módulo o una porción de código más pequeña, como un procedimiento o una función. A veces
podrán aceptar argumentos para modificar su significado.
Los atributos están ubicados en el código entre los símbolos [ y ]. Si se utilizan varios atributos,
deben ir separados con comas. Los posibles parámetros de un atributo estarán ubicados entre
paréntesis.
El alcance de un atributo puede extenderse también con las palabras reservadas Assembly: o
Module: ubicadas antes del atributo. La sintaxis de utilización de un atributo es, por lo tanto:
[alcance:Atributo1(parámetro1,...),Atributo2,...]
Entre los atributos disponibles, algunos se usan muy a menudo en el desarrollo con Visual C#.
Vamos a estudiar su utilización e ilustrarlo con un ejemplo.
Serializable, NonSerialized
Estos dos atributos controlan la serialización de una clase y de sus miembros. La serialización
permite el registro de una instancia de clase en un archivo, con lo que asegura la persistencia de
los datos. El archivo generado puede estar en formato binario o XML. En este caso, facilita el
intercambio de datos entre aplicaciones. Para que una clase sea utilizable por el mecanismo de
serialización, ésta debe ser marcada con el atributo SerializableAttribute. Durante la
operación de serialización, el contenido de cada uno de los miembros de la instancia de la clase se
guarda en el archivo. Si algunos de ellos no deben guardarse en el archivo, se deben marcar con el
atributo NonSerializedAttribute.
http://www.eni-training.com/client_net/mediabook.aspx?idR=69383 5/8
24/4/2014 ENI Training - Libro online
El ejemplo siguiente define la clase Persona con dos miembros (Apellido y Nombre) que se
serializarán y un miembro (Edad) que no se serializará. Una instancia de la clase se crea y se
guarda en un archivo con formato XML.
Ejemplo
using System;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Soap;
using System.IO;
namespace Contab
{
[Serializable()] public class Persona
{
public String apellido;
public string nombre;
[NonSerialized()] public int edad;
public Persona()
{
}
}
static class Serializacion
{
public static void main()
{
Persona unaPersona;
unaPersona = new Persona();
unaPersona.apellido = "García";
unaPersona.nombre = "Pablo";
unaPersona.edad = 25;
Stream flujo;
flujo = File.Open("c:\\datos.xml", FileMode.Create);
SoapFormatter formador;
formador = new SoapFormatter();
formador.Serialize(flujo, unaPersona);
flujo.Close();
}
}
}
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC=
"http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV=
"http://schemas.xmlsoap.org/soap/envelope/" xmlns:clr="http://schemas.
microsoft.com/soap/encoding/clr/1.0" SOAP-ENV:encodingStyle=
"http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<a1:Persona id="ref-1" xmlns:a1="http://schemas.microsoft.com/clr/nsassem/
Contab/testFunciones%2C%20Version%3D1.0.0.0%2C%20Culture%3Dneutral%2C%20Public-
KeyToken%3Dnull">
<apellido id="ref-3">García</apellido>
<nombre id="ref-4">Pablo</nombre>
</a1:Persona>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
http://www.eni-training.com/client_net/mediabook.aspx?idR=69383 6/8
24/4/2014 ENI Training - Libro online
Nuestra instancia de la clase Persona se encuentra guardada en este archivo con sus dos
miembros Apellido y Nombre y, como hemos indicado en la definición de la clase, el
miembro Edadno se ha guardado.
DllImport
Se utiliza este atributo para indicar que una función es importada desde una librería de código no
gestionado. Permite en particular la utilización de funciones definidas en una librería del sistema.
En el siguiente ejemplo, la función MoveFilese puede utilizar como una función clásica.
Ejemplo
Obsolete
Se puede utilizar este atributo para indicar que un elemento, clase o método o propiedad no se
debe utilizar más. Si a pesar de todo se utiliza este elemento en una aplicación, el compilador
genera una advertencia o un error en función de la configuración del atributo. Es posible pasar a
este atributo una cadena de caracteres como parámetro para representar el mensaje visualizado
por el compilador. Un segundo parámetro de tipo booleano permite especificar si la utilización del
elemento, marcado con este atributo, genera una advertencia o un error de compilación.
Si este atributo viene definido con un segundo parámetro igual a true, el compilador activa un
error cuando se utiliza el elemento.
http://www.eni-training.com/client_net/mediabook.aspx?idR=69383 7/8
24/4/2014 ENI Training - Libro online
Subir
http://www.eni-training.com/client_net/mediabook.aspx?idR=69383 8/8