Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从COM对象访问类_C#_Com_Comobject - Fatal编程技术网

C# 从COM对象访问类

C# 从COM对象访问类,c#,com,comobject,C#,Com,Comobject,我用C#编写了一个类库(.dll),它是从第三方.exe调用的。.exe调用my.dll中的方法,将COM对象传递给我的方法。由于各种原因,我无法访问此COM对象的等效类定义,但我能够使用此便利工具发现其公共方法和属性。我希望创建一个外部类定义,以便访问这些成员,但正如我发现的,C#不允许这样做 访问这些类成员的最佳/正确的方法是什么?如果您知道方法名称和参数类型,您可以使用动态 dynamic o = theComObject; o.SomeMethod(arg1, arg2, arg3);

我用C#编写了一个类库(.dll),它是从第三方.exe调用的。.exe调用my.dll中的方法,将COM对象传递给我的方法。由于各种原因,我无法访问此COM对象的等效类定义,但我能够使用此便利工具发现其公共方法和属性。我希望创建一个
外部类
定义,以便访问这些成员,但正如我发现的,C#不允许这样做


访问这些类成员的最佳/正确的方法是什么?

如果您知道方法名称和参数类型,您可以使用
动态

dynamic o = theComObject;
o.SomeMethod(arg1, arg2, arg3);
var v = o.SomeProperty;

如果您知道方法名称和参数类型,那么只需使用
dynamic

dynamic o = theComObject;
o.SomeMethod(arg1, arg2, arg3);
var v = o.SomeProperty;

你的代词和这个,那个都混在一起了,很难理解你在问什么。我认为您需要做的只是获取COM对象的IDispatch接口并从中调用。看看汉斯在这篇文章中的回答:@JoeWillcoxson我很乐意编辑澄清-什么是第一对模棱两可的东西?我也会看看那个问答。你的代词和这个,那个都混在一起了,很难理解你在问什么。我认为您需要做的只是获取COM对象的IDispatch接口并从中调用。看看汉斯在这篇文章中的回答:@JoeWillcoxson我很乐意编辑澄清-什么是第一对模棱两可的东西?我也会看看这个问答。