简体   繁体   English

在Microsoft.Graph Client中查询组成员时出现异常

[英]Exception when querying the members of group in Microsoft.Graph Client

When trying to load the members of a group using the Microsoft.Graph Client Library that has a contact as a member (besides regular users), the following Exception is thrown: 尝试使用具有联系人作为成员的Microsoft.Graph客户端库 (除了常规用户)加载组的成员时,将引发以下异常:

The value 'Microsoft.Graph.Contact' is not of type 'Microsoft.Graph.DirectoryObject' and cannot be used in this generic collection. Parameter name: value

at Newtonsoft.Json.Utilities.CollectionWrapper\`1.VerifyValueType(Object value)
       at Newtonsoft.Json.Utilities.CollectionWrapper\`1.System.Collections.IList.Add(Object value)
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Populate(JsonReader reader, Object target)
       at Newtonsoft.Json.Serialization.JsonSerializerProxy.PopulateInternal(JsonReader reader, Object target)
       at Newtonsoft.Json.Converters.CustomCreationConverter\`1.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer)
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
       at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
       at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
       at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
       at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
       at Microsoft.Graph.Serializer.DeserializeObject[T](String inputString)
       at Microsoft.Graph.BaseRequest.d__27`1.MoveNext()
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
       at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       at Microsoft.Graph.GroupMembersCollectionWithReferencesRequest.d__2.MoveNext()

Code that throws the exception 抛出异常的代码

 var grpMembers = client.Groups["Id of a group with a contact as member"].Members.Request().GetAsync().Result;

When using the online graph-explorer , the request returns the contact just fine. 使用在线图形浏览器时 ,请求返回联系人就好了。 I understand, that contacts are not supported in v1.0 of Microsoft.Graph. 据我所知,Microsoft.Graph的v1.0不支持联系人。 So is there a way of using a filter clause to limit the returned members to the supported types? 那么有没有办法使用filter子句将返回的成员限制为支持的类型?

Thanks for reporting this. 感谢您报告此事。 I'll create a bug for this and we'll take a look. 我将为此创建一个错误,我们将看一看。 We also have a backlog item to allow casting so that the response only contains the object types you need. 我们还有一个积压项目允许转换,以便响应只包含您需要的对象类型。 We'd need to support this in the client library too I expect. 我们也希望在客户端库中支持这一点。 However, in this case it looks like this might be a service bug since v1.0 should not even "know" about org contacts, and at first glance it looks like this is being mapped to a personal contact. 但是,在这种情况下,看起来这可能是一个服务错误,因为v1.0甚至不应该“知道”关于组织联系人,并且乍一看它看起来像是映射到个人联系人。

We'll get back to you on this shortly. 我们很快就会回复你。 Again, thanks for reporting. 再次感谢报道。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM