* Added beta support for Dictionaries. Should work fine for simple dictionaries, may be janky or broken for more complex ones (eg. Dicts nested inside a Dict).
* Fixed a bug with Lists of primitive values.
This commit is contained in:
sinaioutlander
2020-09-06 21:33:09 +10:00
parent 9cb1cea025
commit 692a37635e
6 changed files with 294 additions and 49 deletions

View File

@ -115,6 +115,11 @@ namespace Explorer
{
CacheObjectBase holder;
// This is pretty ugly, could probably make a cleaner implementation.
// However, the only cleaner ways I can think of are slower and probably not worth it.
// Note: the order is somewhat important.
if (memberInfo is MethodInfo mi)
{
if (CacheMethod.CanEvaluate(mi))
@ -154,14 +159,15 @@ namespace Explorer
{
holder = new CacheRect();
}
else if (ReflectionHelpers.IsArray(valueType) || ReflectionHelpers.IsList(valueType))
{
holder = new CacheList();
}
// must check this before IsEnumerable
else if (ReflectionHelpers.IsDictionary(valueType))
{
holder = new CacheDictionary();
}
else if (ReflectionHelpers.IsEnumerable(valueType) || ReflectionHelpers.IsCppList(valueType))
{
holder = new CacheList();
}
else
{
holder = new CacheOther();