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 包,确保依赖项存在于目标系统中。