Pregunta Stackoverflow when call Get() method

  • martes, 03 de julio de 2012 20:42
     
     

    Hi there,

    I'm currently developing a project which using WCF and AppFabric but the DataCache.Get() method always throw the exception as below:

    An unhandled exception of type 'System.StackOverflowException' occurred in Serialization.dll


    • Editado ehor martes, 03 de julio de 2012 20:44
    •  

Todas las respuestas

  • jueves, 05 de julio de 2012 2:00
     
     

    Hi Ehor, 

    Can you tell us which version of Appfabric Cache are you using? Can you also share the snippet of the code?

    --Thanks

    Vinushree

  • viernes, 06 de julio de 2012 22:07
     
      Tiene código

    I'm using AppFabric version 1.1. This issue only happen on debug mode.

    To simplify my code,  basically I have four Self Tracking Entity (STE) models. 

        [DataContract]
        public class Model_Root
        {
            [DataMember]
            public int Id { get; set; }
    
            //Navigation Property
            [DataMember]
            private TrackableCollection<Model_A> Model_A_Collection { get; set; }
    
            [DataMember]
            private TrackableCollection<Model_B> Model_B_Collection { get; set; }
    
    
        }
    
        [DataContract]
        public class Model_A
        {
            [DataMember]
            public int Model_A_Id { get; set; }
    
            //Navigation Property
            [DataMember]
            public Model_Root ModelRoot { get; set; }
    
            [DataMember]
            public TrackableCollection<Model_A_B> Model_A_B { get; set; }
        }
    
        [DataContract]
        public class Model_B
        {
            [DataMember]
            public int Model_B_Id { get; set; }
    
            //Navigation Property
            [DataMember]
            public Model_Root ModelRoot { get; set; }
    
            [DataMember]
            public TrackableCollection<Model_A_B> Model_A_B { get; set; }
        }
    
        [DataContract]
        public class Model_A_B
        {
            [DataMember]
            public int Model_A_Id { get; set; }
    
            [DataMember]
            public int Model_B_Id { get; set; }
    
            //Navigation Property
            [DataMember]
            public Model_A Model_A { get; set; }
    
            [DataMember]
            public Model_B Model_B { get; set; }
        }


    For app fabric, the class as below

     

     public static class CacheManager
        {
            private static DataCache _dataCache;
    
            static CacheManager()
            {
                var cahceFactory = new DataCacheFactory();
                _dataCache = cahceFactory.GetCache("Development_Cache_Name");
            }
    
    
            public static object Get(Model_Root modelRoot)
            {
                var key = String.Format("Model_Root_{0}", modelRoot.Id);
                return _dataCache.Get(key, "Model_Root");
            }
        }

    
    
    • Editado ehor viernes, 06 de julio de 2012 22:10
    •