2013-10-01 119 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 +中具有相同的效果。