C#反射-COM对象
如果我有一个COM对象(用Activator.CreateInstance实例化),它将其他对象作为属性公开,比如C#反射-COM对象,c#,reflection,com,C#,Reflection,Com,如果我有一个COM对象(用Activator.CreateInstance实例化),它将其他对象作为属性公开,比如 Object1.Object2.Object3 如果我只有一个使用反射的Object1实例,如何获取Object3 如果我只有一个使用反射的Object1实例,如何获取Object3 那是不可能的。您需要首先通过反射获取Object2实例,然后才能访问Object3。如果您有其他对象持有对Object3的引用,那么这可能是可能的 顺便说一下,如果您使用的是.NET 4.0或更高版本
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程序集中,你的代码的其他部分可以访问。如果你不能做到这一点,那么我担心你必须为核心的反射做好准备。