في الآونة الأخيرة ، قمت بفرز رمز ASP/VBSCript ووجدت أن ASP نفذت MVC Framework في الماضي كان منتجًا شبه مصقول ، وكانت الكفاءة مشكلة أيضًا. ومع ذلك ، وجدت أن هناك بعض الرموز التي كتبتها فيها ، وشعرت أنه يمكنني إخراجها لمقابلة أشخاص ، لذلك كتبت هذا المقال اليوم لتسجيله.
يقال إنه ASP ، ولكن لا علاقة له بـ VBScript. لغة vbscript ورثتها من Visual Basic. لم تعد مرونة بناء الجملة VB مرضية. كمجموعة فرعية ، يمكن تخيل VBs. قدمت Microsoft تقنيات متقدمة مثل انعكاس Shenma والتأمل في .NET. كتقنية مهجورة ، لا يوجد أي توقع أن يمكن أن توفر Microsoft الدعم ، وبالتالي يمكن للمبرمجين العنيدين والمحافظة فقط أن يرفع أدمغتهم لتقليد وتنفيذ بعض الوظائف المماثلة.
حسنًا ، أعترف أنه لفترة طويلة كنت واحدة من المدارس العنيدة والمحافظة. اليوم أقوم بتقديم إحدى الوظائف ، وإنشاء كائن خاصية ديناميكيًا ، ويسمى كائن السمة هذا ، أي أن الكائنات التي تم إنشاؤها ديناميكي تحتوي فقط على خصائص (خصائص).
تم نشر رمز التنفيذ أدناه للرجوع إليه:
نسخة الكود كما يلي:
'
"مولد كائن ديناميكي ASP/VBSCript
المؤلف: وانجي
لمزيد من المعلومات يرجى زيارة
'
يتم توزيع هذا الرمز بموجب ترخيص BSD
'
const property_access_readonly = 1
const property_access_writeonly = -1
const property_access_all = 0
فئة DynamicObject
M_OBJProperties الخاصة
خاص m_strname
sub sub class_initialize ()
تعيين m_objproperties = createObject ("scripting.dictionary")
m_strname = "AnonymousObject"
نهاية الفرعية
sub sub class_terminate ()
إذا لم يكن isObject (m_objproperties) ثم
m_objproperties.removeall
إنهاء إذا
تعيين m_objproperties = لا شيء
نهاية الفرعية
setClassName العام (strname)
m_strname = strname
نهاية الفرعية
إضافة فرعية عامة (مفتاح ، قيمة ، وصول)
M_OBJPROPERTIES.ADD مفتاح ، صفيف (القيمة ، الوصول)
نهاية الفرعية
setValue الفرعي العام (المفتاح ، القيمة ، الوصول)
إذا m_objproperties.exists (مفتاح) ثم
m_objproperties.item (مفتاح) (0) = القيمة
m_objproperties.item (مفتاح) (1) = الوصول
آخر
أضف المفتاح ، القيمة ، الوصول
إنهاء إذا
نهاية الفرعية
وظيفة خاصة getReadonlyCode (Strkey)
دام سترينام ، strpublicgetname