public static T GetBagItem <T>(this IHaveBags haveBags, string itemKey, T defaultItemValue = default(T)) { if (!haveBags.Bags.ContainsKey(itemKey)) { return(defaultItemValue); } var bagItemValue = haveBags.Bags[itemKey]; var bagItemConvertTo = haveBags.BagItemConvertTo <T>(bagItemValue); return(bagItemConvertTo); }
public static T BagItemConvertTo <T>(this IHaveBags haveBags, object bagItemValue) { if (bagItemValue is T itemValue) { return(itemValue); } if (bagItemValue is JObject theJObject) { return(theJObject.ToObject <T>()); } var json = JsonConvert.SerializeObject(bagItemValue); var argsT = JsonConvert.DeserializeObject <T>(json); return(argsT); }
public static void SetBagItem <T>(this IHaveBags haveBags, T args) { haveBags.Bags["args"] = args; }