示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
 public static void SetBagItem <T>(this IHaveBags haveBags, T args)
 {
     haveBags.Bags["args"] = args;
 }