Beispiel #1
0
        public static SDAppDomain ToSDModel(this ClrAppDomain domain)
        {
            var model = new SDAppDomain();

            model.Address         = domain.Address;
            model.ApplicationBase = domain.ApplicationBase;
            model.Id      = domain.Id;
            model.Name    = domain.Name;
            model.Modules = new List <SDClrModule>();
            foreach (ClrModule clrModule in domain.Modules)
            {
                model.Modules.Add(clrModule.ToSDModel());
            }
            model.Runtime = domain.Runtime.ClrInfo.ToSDModel();
            return(model);
        }
        public void AppDomainSerializationTest()
        {
            SystemAnalyzer     analyzer = new SystemAnalyzer(this.context);
            List <SDAppDomain> domains  = new List <SDAppDomain>();

            foreach (SDAppDomain domainBefore in analyzer.systemInfo.AppDomains)
            {
                string json = domainBefore.SerializeToJSON();
                // deserialize domain
                SDAppDomain domainAfter = JsonConvert.DeserializeObject <SDAppDomain>(json);
                domains.Add(domainAfter);
                // assert
                Assert.AreEqual(domainBefore, domainAfter);

                // serialize again and check
                string jsonAfter = domainAfter.SerializeToJSON();
                StringAssert.Equals(json, jsonAfter);
            }

            // extra assert on collection, assume order stays the same after deserialization
            Assert.IsTrue(Enumerable.SequenceEqual(domains, analyzer.systemInfo.AppDomains));
        }