我与第三方SDK(专有),我在我的控制台应用程序已引用的工作,我一直负责帮助建立一个解决方案,这将有利于许多日常任务。 然而,正如我一直在建设,我观察了解决方案的一部分,某些项目将返回这对我看起来像错误的对象。 这仅与特定项目发生,但是其他项目恢复有意义的数据,所以我认为是与它是无效,或不存在。 不过,我想问一下社会各界对一些见解。
例子
当我看到在获得客户的粘结剂GUID(好案例)
string getGuid = currentWorkingPaper.ClientGUID; << I get meaningfull data that I can use
在另一方面,当我看着同一客户粘结剂的账户(不好的情况下)
var value1 = currentWorkingPaper.RootEntity.Accounts; << returns {System.__ComObject}
当我深入到{系统.__ ComObject}我得到以下
我试图获取数据
我试图钻入进入这个COM对象,看看我是否可以得到以下操作的一些信息,但我没有得到这是可用的任何数据。
第一次尝试:
var whatIsThis1 = value1.GetType().GetMembers();
**Returns**
- whatIsThis1 {System.Reflection.MemberInfo[7]} System.Reflection.MemberInfo[]
+ [0] {System.String ToString()} System.Reflection.MemberInfo {System.Reflection.RuntimeMethodInfo}
+ [1] {System.Object GetLifetimeService()} System.Reflection.MemberInfo {System.Reflection.RuntimeMethodInfo}
+ [2] {System.Object InitializeLifetimeService()} System.Reflection.MemberInfo {System.Reflection.RuntimeMethodInfo}
+ [3] {System.Runtime.Remoting.ObjRef CreateObjRef(System.Type)} System.Reflection.MemberInfo {System.Reflection.RuntimeMethodInfo}
+ [4] {Boolean Equals(System.Object)} System.Reflection.MemberInfo {System.Reflection.RuntimeMethodInfo}
+ [5] {Int32 GetHashCode()} System.Reflection.MemberInfo {System.Reflection.RuntimeMethodInfo}
+ [6] {System.Type GetType()} System.Reflection.MemberInfo {System.Reflection.RuntimeMethodInfo}
第二次尝试
var whatIsThis2 = value1.GetType().AssemblyQualifiedName;
**returns**
whatIsThis2 "System.__ComObject, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" string
第三次尝试
var whatIsThis3 = value1.GetType().GetFields();
**Returns**
whatIsThis3 {System.Reflection.FieldInfo[0]} System.Reflection.FieldInfo[]
附录
我的第三次尝试之后,我发现它返回没有字段,所以我认为它可能是,当我得到一个系统.__ COMObject那是因为我想获得的是为空或不存在的数据。 因为,我只得到这些对象与我试图让某些项目。 不过我很好奇,看看到底什么是这些COM对象的内部。