Я видел веб-финансовую систему в Интернете во время инцидента. Он реализован через ActiveX. На самом деле, если вы используете веб -сервис для комбинирования DHTML, вы можете полностью отложить ActiveX в сторону. Вот простой пример.
Прежде всего, веб -сервис, который очень прост, я не буду подробно объяснить, просто посмотрите на комментарии.
Файл -исследование.asmx.cs
Использование системы;
Использование System.collections;
Использование System.componentModel;
Использование System.data;
Использование System.diagnostics;
Использование System.Web;
Использование System.Web.Services;
Использование System.xml.serialization;
Имен пространство изучение XML
{
/// <summary>
/// <br> Пример веб -сервиса </br>
/// <br> Автор: [Электронная почта защищена] </br>
/// <br> Дата: 2001/12/21 </br>
/// <br> История: завершена в 2001 году // 12/21 </br>
/// </summary>
/// <замечания>
/// Функция, реализованная этим веб -сайтом, очень проста
/// Существует две основные функции, одна из них - получить предопределенный массив элементов.
/// другой - сохранить записи типа записи
/// </замечания>
Публичное исследование: System.Web.services.Webservice
{
Private ArrayList M_Arrites;
Private Arraylist M_ArrreoCrds;
общественное исследование ()
{
// CodeGen: этот вызов требуется для дизайнера веб -сервисов ASP.NET
initializeComponent ();
this.m_arrreocrds = new Arraylist ();
this.m_arrites = new ArrayList ();
// Добавить несколько экспериментальных данных
для (int i = 0; i <100; i ++)
{
this.m_arrites.add (новый элемент (itemname + i.tostring ()
, itemvalue + (i + 1) .toString ()));
}
}
/// <summary>
////
/// </summary>
/// <param name = a_stritemname> Имя элемента </param>
/// <returns> объект элемента </returns>
Приватный элемент getItem (строка a_stritemname)
{
// throw (новое исключение (server.urldecode (a_stritemname))));
для (int i = 0; i <this.m_arrites.count; i ++)
{
Item Item = (item) this.m_arrites [i];
if (item.name == server.urldecode (a_stritemname) .trim ())
{
вернуть элемент;
}
}
вернуть ноль;
}
#region Component Designer сгенерированный код
// требуется дизайнером веб -служб
частные компоненты Icontainer = null;
/// <summary>
/// Требуемый метод поддержки дизайнера - не изменять
/// Содержимое этого метода с редактором кода.
/// </summary>
private void initializecomponent ()
{
}
/// <summary>
/// Очистите любые используемые ресурсы.
/// </summary>
Защищенное переопределение пустота утилизация (утилизация Bool)
{
if (displow && components! = null)
{
Components.dispose ();
}
base.dispose (dispose);
}
#endregion
[webmethod]
public void Additem (String a_strname, String a_strvalue)
{
this.m_arrites.add (новый элемент (a_strname, a_strvalue));
}
/// <summary>
/// Получить список предметов
/// </summary>
/// <return> arraylist </returns>
[webmethod]
[xmlinclude (typeof (item))]]
Public ArrayList getItems ()
{
вернуть это.m_arrites;
}
/// <summary>
/// Сохранить запись
/// </summary>
/// <param name = a_stritemname> </param>
/// <param name = a_strdemoname> </param>
/// <param name = a_intdemoamount> </param>
/// <returns> Если это удастся, верните false в противном случае </returns>
[webmethod]
public bool saverecord (строка a_stritemname
, String a_stremoname, int a_intdemoamount)
{
пытаться
{
Item Item = this.getItem (a_stritemname);
if (item! = null)
{
this.m_arrreocrds.add (новая запись (this.m_arrreocrds.count + 1
, элемент
, новая демонстрация (a_strdemoname, a_intdemoamount))));
}
еще
{
Throw (новое исключение (ошибка имени для указания элемента!));
}
вернуть истину;
}
Поймать (исключение E)
{
бросить (новое исключение (e.toString ())));
// вернуть ложь;
}
} // Метод окончания
} // конечный класс
/// <summary>
/// простой класс, чтобы соответствовать параметрам, таким как Select
/// </summary>
Публичный класс
{
Приватная строка m_strname;
Приватная строка m_strvalue;
Общественное название строки
{
получать
{
вернуть this.m_strname;
}
набор
{
this.m_strname = value;
}
}
общедоступное значение
{
получать
{
вернуть это.m_strvalue;
}
набор
{
this.m_strvalue = value;
}
}
Общедоступный элемент (String a_strname, String a_strvalue)
{
this.m_strname = a_strname;
this.m_strvalue = a_strvalue;
}
публичный пункт ()
{
this.m_strname =;
this.m_strvalue =;
}
} // конечный класс
/// <summary>
/// Простые примеры классы
/// Структура очень проста, три переменных члена
/// ряд типа int,
/// Тип элемента, демонстрационный тип
/// </summary>
Отчет об открытом классе
{
private int m_intid;
Приватный элемент m_objmyitem;
частная демонстрация M_OBJMYDEMO;
публичная запись ()
{
this.m_intid = 0;
this.m_objmydemo = new Demo ();
this.m_objmyitem = new item ();
}
Публичная запись (int a_intid, item a_objitem, demo a_objdemo)
{
this.m_intid = a_intid;
this.m_objmydemo = a_objdemo;
this.m_objmyitem = a_objitem;
}
} // end cals
/// <summary>
/// Простой пример класса
/// Структура очень проста, с двумя переменными членами, одному имени и одной сумме
/// </summary>
Демо открытого класса
{
Приватная строка m_strname;
private int m_intamount;
Общественное название строки
{
получать
{
вернуть this.m_strname;
}
набор
{
this.m_strname = value;
}
}
Общественная сумма
{
получать
{
вернуть this.m_intamount;
}
набор
{
this.m_intamount = value;
}
}
/// <summary>
/// Конструктор
/// </summary>
общественная демонстрация ()
{
this.m_intamount = 0;
this.m_strname =;
}
/// <summary>
/// Перегрузка конструктора
/// </summary>
/// <param name = a_strname> </param>
/// <param name = a_intamount> </param>
Общественная демонстрация (строка a_strname, int a_intamount)
{
this.m_intamount = a_intamount;
this.m_strname = a_strname;
}
} // конечный класс
} // Конец пространства имен