使用CachingFramework.Redis时我试图将一个对象插入一个键,字段哈希......
enter code here
var map = new MyMapping
{
DataSourceId = source.DataSourceId,
ExternalId = source.ExternalId,
StoreId = source.StoreId ?? 0,
LastConnection = source.LastConnection,
ApiKey = source.ApiKey
};
Context.Cache.SetHashed("MyRedisKey", "MyFieldKey", map, TimeSpan.FromHours(1));
但是,当我试图将哈希值取回时......
var MyCachedValue = Context.Cache.GetHashed<MyMapping>(("MyRedisKey", "MyFieldKey");
我收到了错误......
“Microsoft.Azure.WebJobs.Host.FunctionInvocationException:执行函数时出现异常:MyFunction ---&gt; System.Runtime.Serialization.SerializationException:无法找到程序集'MySolution.MyProject.MyService,Version = 1.0.0.0, Culture = neutral,PublicKeyToken = null'。\ r \ n async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.FunctionInvocationFilterInvoker.InvokeAsync(Object instance,Object [] arguments)\ r \ n at async Microsoft.Azure.WebJobs .Host.Executors.FunctionExecutor.InvokeAsync(IFunctionInvoker invoker,ParameterHelper parameterHelper,CancellationTokenSource timeoutTokenSource,CancellationTokenSource functionCancellationTokenSource,Boolean throwOnTimeout,TimeSpan timerInterval,IFunctionInstance instance)\ r \ n .......
答案 0 :(得分:1)
您是否在不同的程序集中设置和检索值?看起来可能就是这种情况。
在这种情况下,您需要在共享程序集中定义Map
,该程序集由设置值的项目以及获取值的项目引用。
1和2都应该引用3,这就是你应该定义存储在缓存中的对象的地方。