Core: fix parse

This commit is contained in:
pavelbannov 2020-12-11 13:34:23 +03:00
parent d00d13bb8f
commit 2bb8502526

View File

@ -98,26 +98,23 @@ namespace ASC.Common.Threading
public T GetProperty<T>(string name)
{
var val = DistributedTaskCache.Props.FirstOrDefault(r => r.Key == name);
var prop = DistributedTaskCache.Props.FirstOrDefault(r => r.Key == name);
if (val == null) return default;
if (prop == null) return default;
var resType = typeof(T);
object result = val.Value;
var val = prop.Value.Trim('"');
object result = val;
if(resType == typeof(Guid))
{
result = Guid.Parse(val.Value.Trim('"'));
result = Guid.Parse(val);
}
else if(resType.IsEnum)
{
Enum.TryParse(resType, val.Value, out var e);
Enum.TryParse(resType, val, out var e);
result = e;
}
else if (resType == typeof(bool))
{
result = bool.Parse(val.Value);
}
return (T)Convert.ChangeType(result, resType);
}