Recientemente, ordené el código ASP/VBScript y descubrí que un marco MVC implementado ASP en el pasado era un producto semi-acabado, y la eficiencia también era un problema. Sin embargo, descubrí que había algunos códigos que escribí en él, y sentí que podría llevarlo a conocer gente, así que escribí este artículo hoy para grabarlo.
Se dice que es ASP, pero no tiene nada que ver con VBScript. El lenguaje VBScript se hereda de Visual Basic. La flexibilidad de sintaxis de VB ya no es satisfactoria. Como subconjunto, se puede imaginar VBS. Microsoft ha introducido tecnologías avanzadas como la reflexión de Shenma e introspección en .NET. Como tecnología abandonada, no existe la expectativa de que Microsoft pueda brindar soporte, por lo que los programadores obstinados y conservadores solo pueden acumular sus cerebros para imitar e implementar algunas funciones similares.
Bueno, admito que durante mucho tiempo he sido una de las escuelas tercas y conservadoras. Hoy estoy introduciendo una de las funciones, creando dinámicamente un objeto de propiedad, y el objeto de atributo se llama esto, es decir, los objetos creados dinámicamente solo contienen propiedades (propiedades).
El código de implementación se publica a continuación para su referencia:
La copia del código es la siguiente:
'
'Generador de objetos dinámicos ASP/VBScript
'Autor: Wangye
'Para más información, visite
'
'Este código se distribuye bajo la licencia BSD
'
Const propiedad_access_readonly = 1
Const propiedad_access_writeonly = -1
Const propiedad_access_all = 0
Clase DynamicObject
Privado m_objproperties
M_strname privado
Sub class_initialize () privado ()
Establecer m_objproperties = createObject ("scripting.dictionary")
m_strname = "AnonymousObject"
Final
Sub class_terminate () privado ()
Si no es ISObject (m_objproperties) entonces
m_objproperties.removeall
Final si
Establecer m_objproperties = nada
Final
Public Sub SetClassName (Strname)
m_strname = strname
Final
Public Sub Add (clave, valor, acceso)
m_objproperties.add clave, matriz (valor, acceso)
Final
Public sub setValue (clave, valor, acceso)
Si m_objproperties.exists (clave) entonces entonces
m_objproperties.item (clave) (0) = valor
m_objproperties.item (clave) (1) = Access
Demás
Agregar clave, valor, acceso
Final si
Final
Función privada getReadonlyCode (strkey)
Dim strprivateName, strPublicGetName