c#实现和vb调用createobject()类似方法创建com对象,调用method和property

VB中可以直接用CreateObject("ProgID"或者"CLSID")就可以创建com对象,然后直接使用它的方法和属性,但是c#网上资料很少
C#中类似 CreateObject 的方法就是 System.Activator.CreateInstance. 后续的对象函数的调用能够通过InvokeMember方法来实现。

如在VB中的源代码如下:
Public Sub TestCreateObj()
Dim o As Object = CreateObject("ProID")
o.SomeMethod(arg1, arg2)
w = o.SomeFunction(arg1, arg2)
w = o.SomeGet
o.SomeSet = w
End Sub
转换成C#的代码如下所示:

public void TestCreateObj()
{
System.Type oType = System.Type.GetTypeFromProgID("ProID");
object o = System.Activator.CreateInstance(oType);
oType.InvokeMember("SomeMethod", System.Reflection.BindingFlags.InvokeMethod, null, o, new object[] {arg1, arg2});
w = oType.InvokeMember("SomeFunction", System.Reflection.BindingFlags.InvokeMethod, null, o, new object[] {arg1, arg2});
w = oType.InvokeMember("SomeGet", System.Reflection.BindingFlags.GetProperty, null, o, null);
oType.InvokeMember("SomeSet", System.Reflection.BindingFlags.SetProperty, null, o, new object[] {w});
}


里面有方法,属性的调用设定,很简单。


你可能感兴趣的:(c/c++/c#)