【发布时间】:2020-09-17 14:07:25
【问题描述】:
我一直面临以下问题:
无法转换类型的对象 'System.Collections.Generic.List`1[Microsoft.Graph.ChatMessageHostedContent]' 键入“Microsoft.Graph.IChatMessageHostedContentsCollectionPage”
当我尝试使用 Microsoft Graph SDK 在 Microsoft Teams 中发布图像以及聊天消息时。我使用了最新的 Microsoft.Graph.Beta(0.25.0-preview) 和 Microsoft.Graph.Core(1.21.0) Nuget 包,并使用了以下链接中的整个代码:
https://docs.microsoft.com/en-us/graph/api/chatmessage-post?view=graph-rest-beta&tabs=csharp#request
代码:
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var chatMessage = new ChatMessage
{
Subject = null,
Body = new ItemBody
{
ContentType = BodyType.Html,
Content = "<attachment id=\"74d20c7f34aa4a7fb74e2b30004247c5\"></attachment>"
},
HostedContents = (IChatMessageHostedContentsCollectionPage)new List<ChatMessageHostedContent>()
{
new ChatMessageHostedContent
{
ContentBytes = Encoding.ASCII.GetBytes("iVBORw0KGgoAAAANSUhEUgAAA..."),
ContentType = "image/png",
AdditionalData = new Dictionary<string, object>()
{
{"@microsoft.graph.temporaryId", "1"}
}
},
new ChatMessageHostedContent
{
ContentBytes = Encoding.ASCII.GetBytes("iVBORw0KGgoAAAANSUhEUgAAA..."),
ContentType = "image/png",
AdditionalData = new Dictionary<string, object>()
{
{"@microsoft.graph.temporaryId", "2"}
}
}
}
};
await graphClient.Teams["{id}"].Channels["{id}"].Messages
.Request()
.AddAsync(chatMessage);
谁能帮我解决这个问题?
【问题讨论】:
-
您正在尝试将对象列表转换为单个对象。您需要获取实现该接口的类 (
IChatMessageHostedContentsCollectionPage),创建它的新实例,并将列表添加到页面上包含项目的任何属性(通常在图形 SDK 上称为CurrentPage) -
@GuruStron,我已经更新了上面的代码,请帮忙。
-
@Pravin ,我们无法重现该问题,代码工作正常。能否请您简单介绍一下这个问题。
-
VaraPrasad-MSFT,感谢您的回复。其实这个问题已经解决了。但实际问题在下面发布。请帮忙。 stackoverflow.com/questions/64028614/…
标签: c# microsoft-graph-api microsoft-teams microsoft-graph-sdks microsoft-graph-teams