Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Foundatio/Caching/InMemoryCacheClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1767,7 +1767,7 @@ public T GetValue<T>()
object val = Value;
var t = typeof(T);

if (t == TypeHelper.BoolType || t == TypeHelper.StringType || t == TypeHelper.CharType || t == TypeHelper.DateTimeType || t == TypeHelper.ObjectType || t.IsNumeric())
if (t == TypeHelper.BoolType || t == TypeHelper.StringType || t == TypeHelper.CharType || t == TypeHelper.DateTimeType || t.IsNumeric())
return (T)Convert.ChangeType(val, t);

if (t == TypeHelper.NullableBoolType || t == TypeHelper.NullableCharType || t == TypeHelper.NullableDateTimeType || t.IsNullableNumeric())
Expand Down
17 changes: 17 additions & 0 deletions tests/Foundatio.Tests/Caching/InMemoryCacheClientTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1596,6 +1596,23 @@ public async Task DoMaintenanceAsync_WithPositiveTimezoneOffset_ShouldNotThrowOn
Assert.Null(Log.LogEntries.SingleOrDefault(l => l.LogLevel == LogLevel.Error));
}
}

[Fact]
public async Task GetAsync_WithObjectType_ReturnsValueDirectly()
{
var cache = new InMemoryCacheClient(o => o.LoggerFactory(Log));
using (cache)
{
var data = new MyData("hello", 42);
await cache.SetAsync("key", data);

var result = await cache.GetAsync<object>("key");
Assert.True(result.HasValue);
Assert.Equal(data, result.Value);
}
}

private record MyData(string Name, int Value);
}

/// <summary>
Expand Down