向AdaptiveCard的SerializableDictionary<string,object>添加值报错求解决
解决向AdaptiveCard的AdditionalProperties添加值时的参数不匹配错误
尝试向AdaptiveCard的AdditionalProperties(类型为SerializableDictionary<string, object>)添加值时使用了以下代码:
var paths = new[] { ".", "Resources", "ListCard.json" }; var listCardJson = File.ReadAllText(Path.Combine(paths)); AdaptiveCard card = AdaptiveCard.FromJson(listCardJson).Card; var properties = card.AdditionalProperties; var obj = new AdaptiveTextBlock() { Text = "No tasks found." }; properties.Add(new KeyValuePair<string, object>("items", obj));
出现错误:
没有与Dictionary<string,object>.Add<string,object>的必需参数对应的实参
问题原因
SerializableDictionary<string, object>的Add方法没有接受KeyValuePair<string, object>作为参数的重载,它的标准Add方法要求分别传入键和值两个独立参数。
修正方案
方案1:直接传入键和值
调用Add方法时分开传入key和value参数:
var paths = new[] { ".", "Resources", "ListCard.json" }; var listCardJson = File.ReadAllText(Path.Combine(paths)); AdaptiveCard card = AdaptiveCard.FromJson(listCardJson).Card; var properties = card.AdditionalProperties; var obj = new AdaptiveTextBlock() { Text = "No tasks found." }; // 直接传入键和值 properties.Add("items", obj);
方案2:使用索引器赋值
如果需要通过KeyValuePair的形式操作,也可以用字典索引器直接赋值:
// 替换Add方法调用为索引器赋值 properties["items"] = obj;
内容的提问来源于stack exchange,提问作者user22034443
相关产品推荐
相关产品推荐

