Эквивалент для 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+.