J'ai vu un système financier sur le Web sur Internet pendant l'incident. Il est implémenté via ActiveX. En fait, si vous utilisez WebService pour combiner DHTML, vous pouvez complètement mettre ActiveX de côté. Voici un exemple simple.
Tout d'abord, le service Web, ce qui est très simple, je ne vais pas expliquer en détail, il suffit de regarder les commentaires.
File Study.asmx.cs
Utilisation du système;
Utilisation de System.Collections;
Utilisation de System.ComponentModel;
Utilisation de System.Data;
Utilisation de System.diagnostics;
Utilisation de System.Web;
Utilisation de System.Web.Services;
Utilisation de System.xml.Serialization;
Espace de noms Studyxml
{
/// <résumé>
/// <br> Un exemple de service Web </br>
/// <br> Auteur: [Protégé par e-mail] </br>
/// <br> Date: 2001/12/21 </br>
/// <br> HISTOIRE: terminé le 2001 // 12/11 </br>
/// </summary>
/// <Remarques>
/// La fonction implémentée par ce site est très simple
/// Il y a deux fonctions principales, l'une consiste à obtenir un tableau d'élément prédéfini.
/// une autre consiste à enregistrer les enregistrements d'enregistrement
/// </ Remarques>
Étude de classe publique: System.Web.Services.WebService
{
Private ArrayList m_arrites;
Private ArrayList M_Arrreocrds;
Étude publique ()
{
// Codegen: Cet appel est requis par le concepteur de services Web ASP.NET
initializecomponent ();
this.m_arrreocrds = new ArrayList ();
this.m_arrites = new ArrayList ();
// ajouter des données expérimentales
pour (int i = 0; i <100; i ++)
{
this.m_arrites.add (nouvel élément (itemname + i.toString ()
, itemValue + (i + 1) .toString ()));
}
}
/// <résumé>
///
/// </summary>
/// <param name = a_stritemname> Nom de l'article </ param>
/// <retourne> objet d'élément </ retourne>
Article privé GetItem (String a_stritemname)
{
// throw (nouvelle exception (server.urldEcode (a_stritemName))));
pour (int i = 0; i <this.m_arrites.count; i ++)
{
item item = (item) this.m_arrites [i];
if (item.name == server.urldEcode (a_stritemname) .trim ())
{
return item;
}
}
retourner null;
}
#Region Composant Designer Code généré
// requis par le concepteur de services Web
Composants IContainer privés = null;
/// <résumé>
/// Méthode requise pour la prise en charge du concepteur - Ne modifiez pas
/// Le contenu de cette méthode avec l'éditeur de code.
/// </summary>
private void initializEcomposent ()
{
}
/// <résumé>
/// Nettoyez toutes les ressources utilisées.
/// </summary>
Protégé de l'odeur de substitution Void Disser (Bool Disosing)
{
if (disusing && composants! = null)
{
Composants.Dispose ();
}
base.sispose (disposer);
}
#endregion
[WebMethod]
public void addItem (String a_strname, String a_strvalue)
{
this.m_arrites.add (nouvel élément (a_strname, a_strvalue));
}
/// <résumé>
/// Obtenez la liste des articles
/// </summary>
/// <retourne> arrayList </peeping>
[WebMethod]
[xmLinclude (typeof (item))]
public ArrayList getItems ()
{
Renvoyez ce.m_arrites;
}
/// <résumé>
/// Enregistrer l'enregistrement
/// </summary>
/// <param name = a_stritemname> </ param>
/// <param name = a_strDemoname> </ param>
/// <param name = a_intdemoamount> </param>
/// <retourne> S'il réussit, renvoyez false autrement </prewets>
[WebMethod]
public bool SaveRecord (String a_stritemname
, String A_strDemoname, int a_intdemoamount)
{
essayer
{
item item = this.getItem (a_stritemName);
if (item! = null)
{
this.m_arrreocrds.add (nouvel enregistrement (this.m_arrreocrds.count + 1
, article
, nouvelle démo (a_strdemoname, a_intdemoAmount))));
}
autre
{
throw (nouvelle exception (erreur de nom pour spécifier l'élément!));
}
Retour Vrai;
}
Catch (exception e)
{
Throw (nouvelle exception (e.toString ())));
// retourne false;
}
} // Méthode de fin
} // Classe finale
/// <résumé>
/// une classe simple pour correspondre à des options comme sélectionner
/// </summary>
Article de classe publique
{
chaîne privée m_strname;
chaîne privée m_strvalue;
Nom de la chaîne publique
{
obtenir
{
return this.m_strname;
}
ensemble
{
this.m_strname = valeur;
}
}
Valeur de cordes publique
{
obtenir
{
retourner this.m_strvalue;
}
ensemble
{
this.m_strvalue = valeur;
}
}
Élément public (String A_Strname, String A_Strvalue)
{
this.m_strname = a_strname;
this.m_strvalue = a_strvalue;
}
Article public ()
{
this.m_strname =;
this.m_strvalue =;
}
} // Classe finale
/// <résumé>
/// Exemples simples classes
/// La structure est très simple, trois variables membre
/// un certain nombre de types int,
/// un type d'article, un type de démonstration
/// </summary>
Dossier de classe publique
{
privé int m_intid;
Article privé M_OBJMyitem;
Démo privé M_OBJMyDemo;
Public Record ()
{
this.m_intid = 0;
this.m_objmydemo = new Demo ();
this.m_objmyitem = new item ();
}
Enregistrement public (int a_intid, article a_objitem, démo a_objdemo)
{
this.m_intid = a_intid;
this.m_objmydemo = a_objdemo;
this.m_objmyitem = a_objitem;
}
} // fin Cals
/// <résumé>
/// un exemple simple de classe
/// la structure est très simple, avec seulement deux variables de membre, un nom et un montant
/// </summary>
Démo de classe publique
{
chaîne privée m_strname;
privé int m_intamount;
Nom de la chaîne publique
{
obtenir
{
return this.m_strname;
}
ensemble
{
this.m_strname = valeur;
}
}
Montant public public
{
obtenir
{
renvoie this.m_intamount;
}
ensemble
{
this.m_intamount = valeur;
}
}
/// <résumé>
/// constructeur
/// </summary>
Démo public ()
{
this.m_intamount = 0;
this.m_strname =;
}
/// <résumé>
/// Constructeur de surcharge
/// </summary>
/// <param name = a_strname> </param>
/// <param name = a_intamount> </param>
Demo public (chaîne a_strname, int a_intamount)
{
this.m_intamount = a_intamount;
this.m_strname = a_strname;
}
} // Classe finale
} // Fin de l'espace de noms