2013-10-01 69 views
5

我有我轉換爲VB.Net VB6的COM對象2012等效於getobjectcontext()在Visual Studio 2012 vb.net中?

我的示例代碼看起來象下面這樣:

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 

什麼是GetObjectContext()和的CreateInstance()相當於在VB 2012 ?

如何從.net中刪除此概念?

+1

@Hans是什麼讓你投票結束這個問題重複?你是第一個和另外四個人。請參閱[這篇文章引導我到這裏](http://meta.stackexchange.com/q/199313/152859)。 –

回答

1

試試這個:
我覺得你想要這個

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 
1

ObjectContext.CreateInstance雲路(路)回Microsoft事務服務器(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 +中具有相同的效果。