2013-10-01 9 views
5

Ich habe ein VB6 COM-Objekt, das ich VB.Net 2012Entspricht für getobjectcontext() in Visual Studio 2012 vb.net?

Mein Beispielcode sieht aus wie unten bin Umwandlung:

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 

Was() und CreateInstance ist das Äquivalent von GetObjectContext() in VB 2012 ?

Wie kann ich dieses Konzept von .net entfernen?

+1

@Hans, was hat Sie dazu veranlasst, diese Frage als Duplikat zu schließen? Du warst der Erste und vier weitere folgten. Siehe [dieser Meta-Beitrag, der mich hierher geführt hat] (http://meta.stackexchange.com/q/199313/152859). –

Antwort

1

Try this:
Ich denke, u diese

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 geht weit wollen (Weg) zurück zu Microsoft Transaction Server (MTS). Es scheint, dass es in COM + nicht mehr notwendig ist, Objekte über den Objektkontext zu erstellen. Unter normalen COM + -Eigenschaften macht das normale CreateObject() das Richtige.

Ich habe diese Information hier gefunden: http://blogs.msdn.com/b/deva/archive/2012/01/19/com-mts-custom-application-createobject-or-createinstance.aspx.

Im Fall, dass Blog verschwinden soll, hier der Inhalt wörtlich:

Kürzlich i mit einem Entwickler Kunden arbeiten, die eine Visual Basic/COM + basierte Lösung erstellt (intern verwendet die Microsoft Messaging-Bibliothek). Im Allgemeinen möchte er wissen, ob sie CreateObject oder CreateInstance verwenden sollen? Ob beide in COM + den gleichen oder den gleichen Effekt haben?

In Microsoft Transaction Server (MTS) müssen Sie ObjectContext.CreateInstance in Ihrem Stammobjekt verwenden, um sekundäre Objekte für die Transaktion zu erstellen. In COM + funktioniert das immer noch, aber das ist nicht mehr nötig. In COM + subsumiert CreateObject die Funktionalität von ObjectContext.CreateInstance. Das erstellte Objekt nimmt an der Aktivität des Aufrufers teil. In COM + können Sie die Standard-CreateObject-Funktion in Microsoft Visual Basic verwenden, um eine Transaktion gegebenenfalls an sekundäre Objekte weiterzuleiten. Also haben CreateObject und CreateInstance den gleichen Effekt in COM +.