什么';C#中的s函数相当于Vb6中的CreateObject

什么';C#中的s函数相当于Vb6中的CreateObject,c#,object,vb6,siebel,C#,Object,Vb6,Siebel,VB6代码: Dim oApplication As SiebelHTMLApplication Dim oBS As SiebelService Dim oPSIn As SiebelPropertySet Dim oPSOut As SiebelPropertySet Dim sActivityId As String Set oApplication = CreateObject("Siebel.Desktop_Integration_Application.1") If oApplica

VB6代码:

Dim oApplication As SiebelHTMLApplication
Dim oBS As SiebelService
Dim oPSIn As SiebelPropertySet
Dim oPSOut As SiebelPropertySet
Dim sActivityId As String
Set oApplication = CreateObject("Siebel.Desktop_Integration_Application.1")
If oApplication.IsReady Then
    Set oBS = oApplication.GetService("Workflow Process Manager")
C#代码:-

然后我尝试将VB代码的第6行转换为c,如下所示:-

但我无法将实例对象强制转换为SiebelHTMLApplication,如:-

sApp = (SiebelHTMLApplication)instance;

有人能告诉我如何设置它吗?

Type.GetTypeFromProgID创建com实例,但不创建类型对象

试一试


您必须将AssemblyName替换为包含Siebel.Desktop\u Integration\u应用程序描述的程序集名称。

您始终可以导入Microsoft.VisualBasic,然后只需使用?

感谢Vasily,最后我通过从对象更改为类型获得了解决方案。那它现在开始工作了

var siebelDeskType = Activator.CreateInstance(Type.GetTypeFromProgID("Siebel.Desktop_Integration_Application.1"));
            sApp = (SiebelHTMLApplication)siebelDeskType;

谢谢你的回答,你完全正确。然后,当我使用type.GetTypeFromProgID从对象更改为类型时。它应该work@PattadonBanthoonipit:Microsoft.VisualBasic库不是VB代码(VB6或.NET),它只是框架中的另一个库。
sApp = (SiebelHTMLApplication)instance;
object instance = Activator.CreateInstance(Type.GetType("Siebel.Desktop_Integration_Application, AssemblyName")); 
var siebelDeskType = Activator.CreateInstance(Type.GetTypeFromProgID("Siebel.Desktop_Integration_Application.1"));
            sApp = (SiebelHTMLApplication)siebelDeskType;