什么';C#中的s函数相当于Vb6中的CreateObject
VB6代码:什么';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
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;