Vi un sistema financiero basado en la web en Internet durante el incidente. Se implementa a través de ActiveX. De hecho, si usa WebService para combinar DHTML, puede dejar a un lado activo por completo. Aquí hay un ejemplo simple.
En primer lugar, el servicio web, que es muy simple, no explicaré en detalle, solo mira los comentarios.
Estudio de archivo.asmx.cs
usando el sistema;
usando System.Collections;
usando System.ComponentModel;
usando System.Data;
usando System.DiaGnósticos;
usando System.web;
usando System.Web.Services;
utilizando System.xml.Serialization;
Nombres de estudioxml
{
/// <summary>
/// <br> Un ejemplo de un servicio web </br>
/// <br> Autor: [correo electrónico protegido] </br>
/// <br> Fecha: 2001/12/21 </br>
/// <br> Historia: completado en 2001 // 12/21 </br>
/// </summary>
/// <observación>
/// La función implementada por este sitio web es muy simple
/// Hay dos funciones principales, una es obtener una matriz de elementos predefinidos.
/// Otro es guardar registros de tipo de registro
/// </observación>
Estudio de clase pública: System.Web.Services.WebService
{
ArrayList privado M_arrites;
ArrayList privado M_arrreocrds;
estudio público ()
{
// Codegen: el diseñador de servicios web de ASP.NET requiere esta llamada
inicializeComponent ();
this.m_arrreocrds = new ArrayList ();
this.m_arrites = new ArrayList ();
// Agregar algunos datos experimentales
para (int i = 0; i <100; i ++)
{
this.m_arrites.add (nuevo elemento (itemname + i.tostring ()
, itemValue + (i + 1) .ToString ()));
}
}
/// <summary>
//
/// </summary>
/// <param name = a_stritemname> Nombre del elemento </param>
/// <mirante> objeto de elemento </surnsurn>
Artículo privado getItem (cadena a_stritemname)
{
// lanzar (nueva excepción (server.urldecode (a_stritemname))));
para (int i = 0; i <this.m_arrites.count; i ++)
{
elemento elemento = (elemento) this.m_arrites [i];
if (item.name == server.urldecode (a_stritemname) .trim ())
{
artículo de devolución;
}
}
regresar nulo;
}
#Código generado por el diseñador de componentes de región
// requerido por el diseñador de servicios web
componentes privados iContainer = nulo;
/// <summary>
/// Método requerido para soporte de diseñador: no modifique
/// El contenido de este método con el editor de códigos.
/// </summary>
Vacío privado InitializeComponent ()
{
}
/// <summary>
/// Limpia cualquier recurso que se use.
/// </summary>
anulación protegida anulando la eliminación (eliminación de bool)
{
if (disposición && componentes! = nulo)
{
componentes.dispose ();
}
base.pise (deseche);
}
#Endregion
[WebMethod]
public void addItem (string a_strname, string a_strvalue)
{
this.m_arrites.add (nuevo elemento (a_strname, a_strvalue));
}
/// <summary>
/// Obtener la lista de artículos
/// </summary>
/// <deurns> ArrayList </devuelve>
[WebMethod]
[xmlinClude (typeof (elemento)]]
Public ArrayList getItems ()
{
devolver esto.m_arrites;
}
/// <summary>
/// Guardar el registro
/// </summary>
/// <param name = a_stritemname> </amam>
/// <param name = a_strdemoname> </param>
/// <param name = a_intdemoamount> </marc>
/// <mirante> Si tiene éxito, devuelve falso de lo contrario </svueltos>
[WebMethod]
Public Bool Saverecord (String A_stritemname
, cadena a_strdemoname, int a_intdemoamount)
{
intentar
{
elemento elemento = this.getItem (a_stritemname);
if (item! = null)
{
this.m_arrreocrds.add (nuevo registro (this.m_arrreocrds.count + 1
, artículo
, nueva demostración (a_strdemoname, a_intdemoamount))));
}
demás
{
lanzar (nueva excepción (¡error de nombre para especificar el elemento!));
}
devolver verdadero;
}
captura (excepción e)
{
lanzar (nueva excepción (e.ToString ())));
// return false;
}
} // Método final
} // Clase final
/// <summary>
/// Una clase simple para corresponder a opciones como seleccionar
/// </summary>
artículo de clase pública
{
cadena privada m_strname;
cadena privada m_strvalue;
nombre de cadena pública
{
conseguir
{
devolver esto.m_strname;
}
colocar
{
this.m_strname = valor;
}
}
valor de cadena pública
{
conseguir
{
devolver esto.m_strvalue;
}
colocar
{
this.m_strvalue = valor;
}
}
Elemento público (cadena a_strname, string a_strvalue)
{
this.m_strname = a_strname;
this.m_strvalue = a_strvalue;
}
Artículo público ()
{
this.m_strname =;
this.m_strvalue =;
}
} // Clase final
/// <summary>
/// clases de ejemplo simples
/// La estructura es muy simple, tres variables miembros
/// un número de tipo int,
/// Tipo de elemento, un tipo de demostración
/// </summary>
Registro de clase pública
{
privado int m_intid;
Artículo privado m_objmyitem;
demostración privada m_objmydemo;
registro público ()
{
this.m_intid = 0;
this.m_objmydemo = new Demo ();
this.m_objmyitem = new item ();
}
registro público (int a_intid, elemento a_objitem, demo a_objdemo)
{
this.m_intid = a_intid;
this.m_objmydemo = a_objdemo;
this.m_objmyitem = a_objitem;
}
} // finalizar las cal.
/// <summary>
/// Una clase de ejemplo simple
/// La estructura es muy simple, con solo dos variables de miembros, un nombre y una cantidad
/// </summary>
Demostración de clase pública
{
cadena privada m_strname;
privado int m_intamount;
nombre de cadena pública
{
conseguir
{
devolver esto.m_strname;
}
colocar
{
this.m_strname = valor;
}
}
Cantidad pública int
{
conseguir
{
devolver esto.m_intamount;
}
colocar
{
this.m_intamount = valor;
}
}
/// <summary>
/// Constructor
/// </summary>
demostración pública ()
{
this.m_intamount = 0;
this.m_strname =;
}
/// <summary>
/// Constructor de sobrecarga
/// </summary>
/// <param name = a_strname> </amam>
/// <param name = a_intamount> </marc>
Public Demo (cadena a_strname, int a_intamount)
{
this.m_intamount = a_intamount;
this.m_strname = a_strname;
}
} // Clase final
} // final del espacio de nombres