一个关于类初始化的问题
我在VB里建了一个ActiveX DLL工程,并创建了一个Persistable类。代码如下:
Option Explicit
Private shpType As String
Private Sub Class_InitProperties()
shpType = "Point"
End Sub
Public Sub Class_ReadProperties(PropBag As PropertyBag)
shpType = PropBag.ReadProperty("ShapeType", "Point")
End Sub
Public Sub Class_WriteProperties(PropBag As PropertyBag)
PropBag.WriteProperty "ShapeType", shpType, "Point"
End Sub
Public Property Let ShapeType(ByVal vData As String)
shpType = vData
Call PropertyChanged("ShapeType")
End Property
Public Property Get ShapeType() As String
ShapeType = shpType
End Property
在VBScript中创建对象Set shpInfo = CreateObject("Shape.ShapeInfo"),但是在程序执行到后面提示说类没有被初始化。
而用VB的声明:set shpInfo = new Shape.ShapeInfo 则程序完全正常。
后来在Class_InitProperties事件设了一个MsgBox,发现用vbscript创建的对象根本没有执行Class_InitProperties事件,也就是shpType 没有被初始化。
这个类主要想用于MSMQ message 的body参数传递,它要求是一个persistable的对象,所以有Class_ReadProperties,Class_WriteProperties 和Class_InitProperties三个过程。
我现在想在VBScript中使用它来做为msmq消息传递,而现在这个类用vbscript似乎不能初始化,请大家帮我看下有什么解决办法。