Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.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#_Reflection_Com - Fatal编程技术网

C#反射-COM对象

C#反射-COM对象,c#,reflection,com,C#,Reflection,Com,如果我有一个COM对象(用Activator.CreateInstance实例化),它将其他对象作为属性公开,比如 Object1.Object2.Object3 如果我只有一个使用反射的Object1实例,如何获取Object3 如果我只有一个使用反射的Object1实例,如何获取Object3 那是不可能的。您需要首先通过反射获取Object2实例,然后才能访问Object3。如果您有其他对象持有对Object3的引用,那么这可能是可能的 顺便说一下,如果您使用的是.NET 4.0或更高版本

如果我有一个COM对象(用Activator.CreateInstance实例化),它将其他对象作为属性公开,比如

Object1.Object2.Object3

如果我只有一个使用反射的Object1实例,如何获取Object3

如果我只有一个使用反射的Object1实例,如何获取Object3

那是不可能的。您需要首先通过反射获取
Object2
实例,然后才能访问
Object3
。如果您有其他对象持有对
Object3
的引用,那么这可能是可能的

顺便说一下,如果您使用的是.NET 4.0或更高版本,您可能会发现
dynamic
关键字在处理COM对象和反射时可能会为您省去很多麻烦。在这里查看:

如果我只有一个使用反射的Object1实例,如何获取Object3

那是不可能的。您需要首先通过反射获取
Object2
实例,然后才能访问
Object3
。如果您有其他对象持有对
Object3
的引用,那么这可能是可能的

顺便说一下,如果您使用的是.NET 4.0或更高版本,您可能会发现
dynamic
关键字在处理COM对象和反射时可能会为您省去很多麻烦。在这里查看:

如果我只有一个使用反射的Object1实例,如何获取Object3

那是不可能的。您需要首先通过反射获取
Object2
实例,然后才能访问
Object3
。如果您有其他对象持有对
Object3
的引用,那么这可能是可能的

顺便说一下,如果您使用的是.NET 4.0或更高版本,您可能会发现
dynamic
关键字在处理COM对象和反射时可能会为您省去很多麻烦。在这里查看:

如果我只有一个使用反射的Object1实例,如何获取Object3

那是不可能的。您需要首先通过反射获取
Object2
实例,然后才能访问
Object3
。如果您有其他对象持有对
Object3
的引用,那么这可能是可能的


顺便说一下,如果您使用的是.NET 4.0或更高版本,您可能会发现
dynamic
关键字在处理COM对象和反射时可能会为您省去很多麻烦。在这里查看:

是的,我一直在阅读关于4.0中的
动态
后期绑定的奇迹,但不幸的是,我在.NET 3.5上…:(哦,很抱歉。顺便说一句,你可以使用VB.NET,它没有像C#一样严格的类型。在VB.NET中使用COM对象比在C#中容易得多(当然在动态关键字之前)。因此,基本上你可以将此逻辑封装到用VB.NET编写的.NET程序集中,你的代码的其他部分可以访问。如果你不能做到这一点,那么我担心你必须为核心反射做好准备。是的,我一直在读关于4.0中
动态
后期绑定的神奇之处,但不幸的是,我正在学习。NET 3.5…:(哦,很抱歉在这里。顺便说一句,你可以使用VB.NET,它没有与C#相同的严格类型。在VB.NET中使用COM对象比在C#中容易得多(当然在动态关键字之前)。因此,基本上你可以将此逻辑封装到用VB.NET编写的.NET程序集中,你的代码的其他部分可以访问。如果你不能做到这一点,那么我担心你必须为核心反射做好准备。是的,我一直在读关于4.0中
动态
后期绑定的神奇之处,但不幸的是,我正在学习。NET 3.5…:(哦,很抱歉在这里。顺便说一句,你可以使用VB.NET,它没有与C#相同的严格类型。在VB.NET中使用COM对象比在C#中容易得多(当然在动态关键字之前)。因此,基本上你可以将此逻辑封装到用VB.NET编写的.NET程序集中,你的代码的其他部分可以访问。如果你不能做到这一点,那么我担心你必须为核心反射做好准备。是的,我一直在读关于4.0中
动态
后期绑定的神奇之处,但不幸的是,我正在学习。NET 3.5…:(哦,很抱歉在这里。顺便说一句,你可以使用VB.NET,它没有与C#相同的严格类型。在VB.NET中使用COM对象比在C#中容易得多(当然在动态关键字之前)所以基本上你可以将这个逻辑封装到一个用VB.NET编写的.NET程序集中,你的代码的其他部分可以访问。如果你不能做到这一点,那么我担心你必须为核心的反射做好准备。