我正在使用我在控制台应用程序中引用的第三方SDK(专有),我的任务是帮助构建一个可以促进许多日常任务的解决方案。但是,当我构建解决方案的一部分时,我观察到某些项目返回的对象看起来像是错误。这仅适用于某些项目,但是其他项目返回有意义的数据,因此我假设它与null相关或不存在。不过,我想请社群提供一些见解。
实施例
当我查看客户的活页夹GUID(好案例)
时string getGuid = currentWorkingPaper.ClientGUID; << I get meaningfull data that I can use
另一方面,当我查看相同客户活页夹(坏案例)的帐户时
var value1 = currentWorkingPaper.RootEntity.Accounts; << returns {System.__ComObject}
当我深入研究{System .__ 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[]
附录
在我第三次尝试之后,我看到它没有返回任何字段,所以我认为可能是,当我得到一个System .__ COMObject时,这是因为我试图获取null或不存在的数据。因为,我只使用我想要的某些项目来获取这些对象。但是我很想知道这些com对象内部到底是什么。