我想使用apache ignite作为集中式会话服务器。我的问题是ignite无法存储不具有可序列化属性的对象。例如我的对象。但是由于PersonDetail实体而无法序列化Person对象。共享使用.net的ignite示例来使用会话,而无需添加每个嵌套实体的serializable属性。
[Serializable]
public class Person
{
public string Name { get; set; }
public int MyProperty2 { get; set; }
public PersonDetail PDetail
{
get
{
return pDetail;
}
set
{
pDetail = value;
}
}
private PersonDetail pDetail;
}
public class PersonDetail
{
private int Salary { get; set; }
public int Age { get; set; }
}
我的网络配置如...
<sessionState mode="Custom" customProvider="IgniteSessionStateProvider">
<providers>
<add name="IgniteSessionStateProvider"
type="Apache.Ignite.AspNet.IgniteSessionStateStoreProvider, Apache.Ignite.AspNet"
igniteConfigurationSectionName="igniteConfiguration"
applicationId="myUI"
gridName="mysessiontest"
cacheName="myWebCache" />
</providers>
</sessionState>
答案 0 :(得分:0)
Ignite.NET使用BinaryFormatter
来序列化会话状态数据,因此所有嵌套类[Serializable]
的要求都来自此。
没有与Ignite相关的解决方法。您可以使用其他序列化器序列化数据,并将byte[]
设置为会话状态。