【发布时间】:2020-11-18 06:34:26
【问题描述】:
有没有办法在分布式缓存中缓存元数据(EdmModel)?
我们有一个多租户系统,其中元数据可以根据客户端进行更改。我们目前正在为客户端构建元数据,然后将其缓存在内存中。构建此元数据的成本很高,因此我们必须对其进行缓存。
似乎无法使用二进制序列化对 EdmModel 进行序列化,然后使用 Redis 等分布式缓存对其进行缓存。
我有下面的代码来序列化模型,但是它不起作用。
IEdmModel model = GetEdmModel();
using (MemoryStream memorystream = new MemoryStream())
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(memorystream, model); // Error is thrown here
byte[] yourBytesToDb = memorystream.ToArray();
}
我收到以下错误
Type 'Microsoft.OData.Edm.EdmModel' in Assembly
'Microsoft.OData.Edm, Version=7.7.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
is not marked as serializable.
还有其他方法可以序列化模型吗?
【问题讨论】:
标签: c# asp.net .net-core odata