会话中的Apache Ignite .Net存储ComplexType

时间:2018-09-03 10:42:45

标签: .net serialization ignite

我想使用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>

1 个答案:

答案 0 :(得分:0)

Ignite.NET使用BinaryFormatter来序列化会话状态数据,因此所有嵌套类[Serializable]的要求都来自此。

没有与Ignite相关的解决方法。您可以使用其他序列化器序列化数据,并将byte[]设置为会话状态。