Эквивалент для getobjectcontext() в визуальной студии 2012 vb.net?

У меня есть COM-объект VB6, который я преобразую в VB.Net 2012

Мой пример кода выглядит следующим образом:

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?

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

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 Messaging). В общем, он хочет знать, должны ли они использовать CreateObject или CreateInstance? Будут ли оба эффекта одинаковыми или разными в COM+?

В Microsoft Transaction Server (MTS) необходимо использовать ObjectContext.CreateInstance в корневом объекте, чтобы создать вторичные объекты для выполнения транзакции. В COM+ это все еще работает, но в этом больше нет необходимости. В COM+ CreateObject включает функциональность ObjectContext.CreateInstance. Созданный объект участвует в деятельности вызывающего. В COM+ вы можете использовать стандартную функцию CreateObject в Microsoft Visual Basic для передачи транзакции вторичным объектам в зависимости от ситуации. Итак, CreateObject и CreateInstance имеют одинаковый эффект в COM+.

Другие вопросы по тегам