Microsoft.Graph DLL 中的集合反序列化
Microsoft.Graph collections deserialization within DLL
我在从 Microsoft Graph 接收集合时遇到奇怪的问题。
我的目标是为另一个处理 MS Graph 集合的系统创建加载项作为 DLL。
我使用如下代码:
var drives = graphClient.Sites[siteId].Drives.Request().GetAsync().Result;
return drives.Count;
在 Visual Studio 2019 年,在单元测试项目中,它运行良好,没有错误。
当我在目标系统中使用 DLL 时出现问题。相同的代码抛出以下异常:
-2146233088 | Could not create an instance of type Microsoft.Graph.ISiteDrivesCollectionPage. Type is an interface or abstract class and cannot be instantiated
您知道吗,为什么作为插件的 Graph SDK 不会自动反序列化接收到的对象?
如果收到一个 class 就可以正常工作,而不是收集。
解决方法是使用 HttpRequestMessage / HttpResponseMessage,但它和上面一样友好。
我会很感激你的帮助
听起来目标系统缺少依赖项(.net 框架、库)。确保它安装了必要的依赖项。始终使用最新的 NuGet 包,确保依赖项存在于目标系统中。
我在从 Microsoft Graph 接收集合时遇到奇怪的问题。 我的目标是为另一个处理 MS Graph 集合的系统创建加载项作为 DLL。 我使用如下代码:
var drives = graphClient.Sites[siteId].Drives.Request().GetAsync().Result;
return drives.Count;
在 Visual Studio 2019 年,在单元测试项目中,它运行良好,没有错误。
当我在目标系统中使用 DLL 时出现问题。相同的代码抛出以下异常:
-2146233088 | Could not create an instance of type Microsoft.Graph.ISiteDrivesCollectionPage. Type is an interface or abstract class and cannot be instantiated
您知道吗,为什么作为插件的 Graph SDK 不会自动反序列化接收到的对象? 如果收到一个 class 就可以正常工作,而不是收集。
解决方法是使用 HttpRequestMessage / HttpResponseMessage,但它和上面一样友好。
我会很感激你的帮助
听起来目标系统缺少依赖项(.net 框架、库)。确保它安装了必要的依赖项。始终使用最新的 NuGet 包,确保依赖项存在于目标系统中。