Vi um sistema financeiro baseado na Web na Internet durante o incidente. É implementado através do ActiveX. De fato, se você usar o WebService para combinar o DHTML, poderá colocar o ActiveX completamente. Aqui está um exemplo simples.
Primeiro de tudo, o Web Service, que é muito simples, não explicarei em detalhes, basta olhar para os comentários.
FILE estudo.asmx.cs
usando o sistema;
usando System.Collections;
usando o System.comPonsonModel;
usando System.data;
usando o System.Diagnostics;
usando System.Web;
usando System.Web.Services;
usando System.xml.Serialization;
namespace studyxml
{
/// <summary>
/// <br> Um exemplo de serviço da web </br>
/// <br> Autor: [email protegido] </br>
/// <br> Data: 2001/12/21 </br>
/// <br> História: Concluído em 2001 // 12/11 </br>
/// </summary>
/// <Observações>
/// A função implementada por este site é muito simples
/// Existem duas funções principais, uma é obter uma matriz de itens predefinidos.
/// Outro é salvar registros de registros
/// </comentários>
Estudo de classe pública: System.Web.Services.WebService
{
Private Arraylist m_arrites;
Private Arraylist m_arrreocrds;
Estudo público ()
{
// CodeGen: Esta chamada é exigida pelo Designer de Serviços da Web do ASP.NET
inicializeComponent ();
this.m_arrreocrs = new ArrayList ();
this.m_arrites = new ArrayList ();
// Adicione alguns dados experimentais
para (int i = 0; i <100; i ++)
{
this.m_arrites.add (novo item (itemName + i.toString ()
, itemValue + (i + 1) .ToString ()));
}
}
/// <summary>
///
/// </summary>
/// <nome do param = a_stritemname> Nome do item </amul>
/// <lorpns> objeto de item </lorpts>
item particular getItem (string a_stritemname)
{
// tiro (nova exceção (server.urldecode (a_stritemname))));
for (int i = 0; i <this.m_arrites.count; i ++)
{
item item = (item) this.m_arrites [i];
if (item.name == server.urldecode (a_stritemname) .Trim ())
{
item de retorno;
}
}
retornar nulo;
}
#Código gerado por designer de componentes de #Region
// exigido pelo designer de serviços da web
componentes icontainer privado = nulo;
/// <summary>
/// Método necessário para suporte ao designer - Não modifique
/// O conteúdo deste método com o editor de código.
/// </summary>
private vazio inicializecomponent ()
{
}
/// <summary>
/// Limpe os recursos que estão sendo usados.
/// </summary>
Substituição protegida Void Dispose (descartando bool)
{
if (Disposição && componentes! = null)
{
components.dispose ();
}
base.Dispose (disposição);
}
#endregion
[WebMethod]
public void additem (string a_strname, string a_strvalue)
{
this.m_arrites.add (novo item (a_strname, a_strvalue));
}
/// <summary>
/// Obtenha a lista de itens
/// </summary>
/// <lorpns> ArrayList </lackns>
[WebMethod]
[xmlinclude (typeof (item))]
Public ArrayList GetItems ()
{
retornar this.m_arrites;
}
/// <summary>
/// salve o registro
/// </summary>
/// <nome do param = a_stritemname> </param>
/// <nome do param = a_strdemoname> </param>
/// <nome do param = a_intdemoamount> </amul>
/// <lortns> Se for bem -sucedido, retorne false, caso contrário, </lortns>
[WebMethod]
public bool saverecord (string a_stritemname
, string a_strdemoname, int a_intdemoamount)
{
tentar
{
item item = this.getItem (a_stritemname);
if (item! = nulo)
{
this.m_arrreocrds.add (novo registro (this.m_arrreocrs.count + 1
, item
, nova demonstração (a_strdemoname, a_intdemoamount))));
}
outro
{
lançar (nova exceção (erro de nome para especificar o item!));
}
retornar true;
}
Catch (Exceção e)
{
arremesso (nova exceção (e.toString ())));
// retorna false;
}
} // Método final
} // Classe final
/// <summary>
/// Uma classe simples para corresponder a opções como selecionar
/// </summary>
Item de classe pública
{
String privada m_strname;
String privada m_strvalue;
Nome de String Public
{
pegar
{
Retorne this.m_strname;
}
definir
{
this.m_strname = value;
}
}
Valor público da string
{
pegar
{
Retorne this.m_strvalue;
}
definir
{
this.m_strvalue = value;
}
}
item público (string a_strname, string a_strvalue)
{
this.m_strname = a_strname;
this.m_strvalue = a_strvalue;
}
item público ()
{
this.m_strname =;
this.m_strvalue =;
}
} // Classe final
/// <summary>
/// classes de exemplo simples
/// a estrutura é muito simples, três variáveis de membros
/// um número de tipo int,
/// um tipo de item, um tipo de demonstração
/// </summary>
Registro de classe pública
{
private int m_intid;
item privado m_objmyitem;
Demo m_objmyDemo privado;
registro público ()
{
this.m_intid = 0;
this.m_objmyDemo = new Demo ();
this.m_objmyitem = new Item ();
}
registro público (int a_intid, item a_objitem, demonstração a_objdemo)
{
this.m_intid = a_intid;
this.m_objmyDemo = a_objdemo;
this.m_objmyitem = a_objitem;
}
} // encerrar cals
/// <summary>
/// Uma aula de exemplo simples
/// A estrutura é muito simples, com apenas duas variáveis de membros, um nome e uma quantia
/// </summary>
Demoção de classe pública
{
String privada m_strname;
privado int m_intamount;
Nome de String Public
{
pegar
{
Retorne this.m_strname;
}
definir
{
this.m_strname = value;
}
}
valor público int
{
pegar
{
retornar this.m_intamount;
}
definir
{
this.m_intamount = value;
}
}
/// <summary>
/// construtor
/// </summary>
demonstração pública ()
{
this.m_intamount = 0;
this.m_strname =;
}
/// <summary>
/// Construtor de sobrecarga
/// </summary>
/// <nome do param = a_strname> </param>
/// <nome do param = a_intamount> </param>
Public Demo (String a_strname, int a_intamount)
{
this.m_intamount = a_intamount;
this.m_strname = a_strname;
}
} // Classe final
} // namespace final