رأيت نظامًا ماليًا على شبكة الإنترنت على الإنترنت أثناء الحادث. يتم تنفيذها من خلال ActiveX. في الواقع ، إذا كنت تستخدم WebService لدمج DHTML ، فيمكنك وضع ActiveX تمامًا. هنا مثال بسيط.
بادئ ذي بدء ، إن خدمة الويب ، وهو أمر بسيط للغاية ، لن أشرح بالتفصيل ، فقط انظر إلى التعليقات.
File study.asmx.cs
باستخدام النظام ؛
باستخدام System.Collections ؛
باستخدام System.componentModel ؛
باستخدام System.Data ؛
باستخدام System.Diagnostics ؛
باستخدام system.web ؛
باستخدام system.web.services ؛
باستخدام system.xml.serialization ؛
مساحة الاسم StudyXML
{
/// <summary>
/// <br> مثال على خدمة الويب </br>
/// <br> المؤلف: [البريد الإلكتروني المحمي] </br>
/// <br> التاريخ: 2001/12/21 </br>
/// <br> التاريخ: أكمل في 2001 // 12/21 </br>
/// </summary>
/// <ملاحظات>
/// الوظيفة التي ينفذها هذا الموقع بسيط للغاية
/// هناك وظيفتان رئيسيتان ، إحداهما هي الحصول على صفيف عنصر محدد مسبقًا.
/// آخر هو حفظ سجلات نوع السجل
/// </remarks>
دراسة الطبقة العامة: System.Web.Services.Webservice
{
arraylist الخاص m_arrites ؛
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)
{
// رمي (استثناء جديد (server.urldecode (a_stritemname))))) ؛
لـ (int i = 0 ؛ i <this.m_arrites.count ؛ i ++)
{
عنصر العنصر = (العنصر) this.m_arrites [i] ؛
if (item.name == server.urldecode (a_stritemname) .trim ())
{
عنصر الإرجاع ؛
}
}
العودة لاغية.
}
#Region Component Designer تم إنشاؤه
// مطلوب من قبل مصمم خدمات الويب
مكونات icontainer الخاصة = فارغة ؛
/// <summary>
/// طريقة مطلوبة لدعم المصمم - لا تعدل
/// محتويات هذه الطريقة مع محرر التعليمات البرمجية.
/// </summary>
private void initializeComponent ()
{
}
/// <summary>
/// تنظيف أي موارد تستخدم.
/// </summary>
التجاوز المحمي باطل التخلص (التخلص من منطق)
{
إذا (التخلص من && مكونات! = خالية)
{
مكونات. dispose () ؛
}
BASE.DISPOSE (التخلص) ؛
}
#endregion
[WebMethod]
Additem public void (سلسلة A_strname ، سلسلة A_STRVALUE)
{
this.m_arrites.add (عنصر جديد (a_strname ، a_strvalue)) ؛
}
/// <summary>
/// الحصول على قائمة العناصر
/// </summary>
/// <returns> arraylist </rovense>
[WebMethod]
[XmlinClude (typeof (item))]
ArrayList Publiclist getItems ()
{
إرجاع this.m_arrites ؛
}
/// <summary>
/// حفظ السجل
/// </summary>
/// <param name = a_stritemname> </param>
/// <param name = a_strdemoname> </param>
/// <param name = a_intdemoamount> </param>
]
[WebMethod]
Bool Bool SavereCord (سلسلة A_stritemname
، سلسلة A_strdemoname ، int a_intdemoamount)
{
يحاول
{
عنصر العنصر = this.getItem (a_stritemname) ؛
إذا (البند! = فارغ)
{
this.m_arrreocrds.add (سجل جديد (this.m_arrreocrds.count + 1
، غرض
، العرض التوضيحي الجديد (a_strdemoname ، a_intdemoamount)))) ؛
}
آخر
{
رمي (استثناء جديد (خطأ الاسم لتحديد العنصر!)) ؛
}
العودة صحيح.
}
الصيد (استثناء ه)
{
رمي (استثناء جديد (E.ToString ()))) ؛
// إرجاع خطأ ؛
}
} // طريقة النهاية
} // end class
/// <summary>
/// فئة بسيطة لتتوافق مع خيارات مثل SELECT
/// </summary>
عنصر الطبقة العامة
{
سلسلة خاصة m_strname ؛
سلسلة خاصة m_strvalue ؛
اسم السلسلة العامة
{
يحصل
{
إرجاع this.m_strname ؛
}
تعيين
{
this.m_strname = value ؛
}
}
قيمة السلسلة العامة
{
يحصل
{
إرجاع this.m_strvalue ؛
}
تعيين
{
this.m_strvalue = value ؛
}
}
العنصر العام (السلسلة A_strname ، سلسلة A_STRVALUE)
{
this.m_strname = a_strname ؛
this.m_strvalue = a_strvalue ؛
}
العنصر العام ()
{
this.m_strname = ؛
this.m_strvalue = ؛
}
} // end class
/// <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 ، البند 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 ؛
}
} // end class
} // نهاية مساحة الاسم