Fmacias.TplQueue.Cache.MemCache
0.1.0-preview.1
Prefix Reserved
dotnet add package Fmacias.TplQueue.Cache.MemCache --version 0.1.0-preview.1
NuGet\Install-Package Fmacias.TplQueue.Cache.MemCache -Version 0.1.0-preview.1
<PackageReference Include="Fmacias.TplQueue.Cache.MemCache" Version="0.1.0-preview.1" />
<PackageVersion Include="Fmacias.TplQueue.Cache.MemCache" Version="0.1.0-preview.1" />
<PackageReference Include="Fmacias.TplQueue.Cache.MemCache" />
paket add Fmacias.TplQueue.Cache.MemCache --version 0.1.0-preview.1
#r "nuget: Fmacias.TplQueue.Cache.MemCache, 0.1.0-preview.1"
#:package Fmacias.TplQueue.Cache.MemCache@0.1.0-preview.1
#addin nuget:?package=Fmacias.TplQueue.Cache.MemCache&version=0.1.0-preview.1&prerelease
#tool nuget:?package=Fmacias.TplQueue.Cache.MemCache&version=0.1.0-preview.1&prerelease
Fmacias.TplQueue.Cache.MemCache
In-memory cache provider built on top of Fmacias.TplQueue.Cache.Abstract.
See also:
- TplQueue.Adapter root README
- TplQueue.Core cache section
- TplQueue.Usage QueueObserverSignalRDashboard sample
- Fmacias.TplQueue README
- Fmacias.TplQueue.Cache.Abstract README
Repository-wide packaging and strong-name signing rules are documented in the TplQueue.Adapter root README.
Use this package when you want a lightweight in-process cache provider for dehydrating payload-aware jobs, hydrating them later, and validating cache-backed flows without introducing an external storage dependency.
Install
dotnet add package Fmacias.TplQueue.Cache.MemCache --version 0.1.0-preview.1
Contents
MemCacheFactorycreation entry point.MemCachein-memory implementation ofIMemCache.- Internal in-memory repository model for cache entries.
Repository build notes
Run from TplQueue.Adapter root:
- Build module:
dotnet build .\src\Fmacias.TplQueue.Cache.MemCache\Fmacias.TplQueue.Cache.MemCache.csproj
- Run module tests:
dotnet test .\test\Fmacias.TplQueue.Cache.MemCache.Test\Fmacias.TplQueue.Cache.MemCache.Test.csproj
- Pack through repo pipeline:
powershell -NoProfile -ExecutionPolicy Bypass -File .\pack-local.ps1
Usage outline
Create with:
IUniversalDataSerializerIDataJobFactoryITypeResolverIPayloadHandlersIRetryPolicyAbstractFactory
Then use cache dehydration/hydration APIs from IMemCache.
Default facade-owned resolver example:
using Fmacias.TplQueue;
using Fmacias.TplQueue.Cache.MemCache;
using Fmacias.TplQueue.Contracts;
IUniversalDataSerializer jsonSerializer = api.SystemTextSerializerFactory().Serializer();
IUniversalDataSerializer xmlSerializer = api.XmlSerializerFactory().Serializer();
IMemCache cache = api.Cache<IMemCache>(
MemCacheFactory.Create(),
jsonSerializer);
If payload types must be resolved from a dedicated AppDomain, provide a custom ITypeResolver implementation and pass it through the explicit facade overload. MemCache depends only on the abstraction, not on the concrete runtime resolver.
using Fmacias.TplQueue.Cache.Abstract.Factories;
ITypeResolver typeResolver = RuntimeNodeTypeResolverFactory.Create().Resolver();
IMemCache cache = api.Cache<IMemCache>(
MemCacheFactory.Create(),
jsonSerializer,
typeResolver);
Use the same cache object to dehydrate a payload root, hydrate it back, and dispatch it through a queue:
cache.Dehydrate(payloadRoot, isFifo: false);
ILogger<IParallelQ> queueLogger = loggerFactory.CreateLogger<IParallelQ>();
if (cache.TryHydrateNextJob(out IDataJobRoot hydratedRoot, out ICacheEntry lease))
{
IParallelQ queue = api.QFactory.Parallel("main", queueLogger);
queue.Enqueue(hydratedRoot, CancellationToken.None);
queue.ResumePolling();
await hydratedRoot.WaitUntilFinishedAsync();
}
Use xmlSerializer instead of jsonSerializer in api.Cache<IMemCache>(...) when XML payload storage is required.
Compatibility note
Some public persisted members still expose JSON-oriented names such as PayloadJson.
Those names are retained for compatibility and should be read as serializer-specific payload content. MemCache can store payload content produced by either the JSON or XML IUniversalDataSerializer implementation selected during cache creation.
Runtime type resolution status
Current state:
MemCachedepends only onITypeResolver, so it can work with the current AppDomain-based runtime resolver
Deferred work:
- if plugin payload types start being loaded from dedicated runtime boundaries in modern .NET, the preferred evolution is an
AssemblyLoadContext-aware resolver behindITypeResolver
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Fmacias.TplQueue.Cache.Abstract (>= 0.1.0-preview.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Fmacias.TplQueue.Cache.MemCache:
| Package | Downloads |
|---|---|
|
Fmacias.TplQueue
Top-level adapter facade for composing TplQueue Core with retry policies, observers, cache providers, serializers, and configuration-driven queue creation. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview.1 | 57 | 5/21/2026 |
Preview release of the TplQueue adapter package line for .NET Standard 2.0. This release focuses on public package metadata, consumer-facing README documentation, and strong-name-ready official build support ahead of the first stable 1.0.0 release.