public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var jObject = JObject.Load(reader); // Don't require type property on AdaptiveBlockContent if (objectType == typeof(AdaptiveBlockContent)) { var result = new AdaptiveBlockContent(); serializer.Populate(jObject.CreateReader(), result); HandleAdditionalProperties(result); return(result); } var typeName = jObject["type"]?.Value <string>() ?? jObject["@type"]?.Value <string>(); if (typeName == null) { throw new Exception("Required property 'type' not found on adaptive card element"); } if (TypedElementTypes.Value.TryGetValue(typeName, out var type)) { var result = (BaseAdaptiveBlockElement)Activator.CreateInstance(type); serializer.Populate(jObject.CreateReader(), result); HandleAdditionalProperties(result); return(result); } //Warnings.Add(new AdaptiveWarning(-1, $"Unknown element '{typeName}'")); return(null); }
public AdaptiveBlock(AdaptiveBlockContent content) { ViewReference = new AdaptiveBlockEmbeddedReference <AdaptiveBlockView>() { Value = new AdaptiveBlockView() { Content = content } }; }