【问题标题】:Equivalent for getobjectcontext() in visual studio 2012 vb.net?等效于 Visual Studio 2012 vb.net 中的 getobjectcontext()?
【发布时间】:2013-10-07 06:01:59
【问题描述】:

我有一个要转换为 VB.Net 2012 的 vb6 COM 对象

我的示例代码如下所示:

Dim ObjContext ,objx ,objy As Object

Dim Rs As ADODB.Recordset

Set ObjContext = GetObjectContext

Set objx =ObjContext.CreateInstance("abc.class1")

Set Objy = ObjContext.CreateInstance("abcde.class2")


Set Rs = objx.getvalue(query)

 If Rs.EOF And Rs.BOF Then

      ObjContext.SetAbort
        Set objx = Nothing
        Set ObjContext = Nothing
        Set Objy = Nothing

  End If

VB 2012 中 GetObjectContext() 和 createinstance() 的等价物是什么?

如何从 .net 中删除这个概念?

【问题讨论】:

标签: c# vb.net visual-studio-2012 vb6 vb6-migration


【解决方案1】:

ObjectContext.CreateInstance 以方式(方式)返回到 Microsoft Transaction Server (MTS)。似乎在 COM+ 中不再需要通过对象上下文创建对象。在 COM+ 下,常规的 CreateObject() 是正确的。

我在这里找到了这个信息:http://blogs.msdn.com/b/deva/archive/2012/01/19/com-mts-custom-application-createobject-or-createinstance.aspx

如果该博客应该消失,这里是逐字逐句的内容:

最近我与一位开发人员客户合作,他创建了一个基于 Visual Basic/COM+ 的解决方案(内部使用 Microsoft 消息库)。一般来说,他想知道他们应该使用 CreateObject 还是 CreateInstance?两者在 COM+ 中是否会产生相同或不同的相同效果?

在 Microsoft Transaction Server (MTS) 中,您必须在根对象中使用 ObjectContext.CreateInstance 来创建辅助对象以使事务流动。在 COM+ 中这仍然有效,但不再需要这样做。在 COM+ 中,CreateObject 包含 ObjectContext.CreateInstance 的功能。创建的对象参与调用者的活动。在 COM+ 中,您可以使用 Microsoft Visual Basic 中的标准 CreateObject 函数将事务流向适当的辅助对象。所以,CreateObject 和 CreateInstance 在 COM+ 中的作用是一样的。

【讨论】:

    【解决方案2】:

    试试这个:
    我想你想要这个

    Dim ObjContext ,objx ,objy As Object
    
    Dim Rs As ADODB.Recordset
    
    Set ObjContext = GetObjectContext
    
    Dim ObjContext As COMSVCSLib.ObjectContext
    
    Dim objAppServer As New COMSVCSLib.AppServer
    
    ObjContext = objAppServer.GetObjectContext()
    
    Set objx =ObjContext.CreateInstance("abc.class1")
    
    Set Objy = ObjContext.CreateInstance("abcde.class2")
    
    
    Set Rs = objx.getvalue(query)
    
     If Rs.EOF And Rs.BOF Then
    
          ObjContext.SetAbort
            Set objx = Nothing
            Set ObjContext = Nothing
            Set Objy = Nothing
    
      End If
    

    【讨论】:

      猜你喜欢
      • 2014-08-16
      • 2015-09-16
      • 1970-01-01
      • 2012-02-04
      • 2012-10-28
      • 2016-08-31
      • 2011-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多