public void JsonSerialization_SerializeToFile_Struct()
        {
            var src = new TestStruct {
                A = 10, B = 32
            };
            var dst = new TestStruct();

            JsonSerialization.Serialize("test.json", src);
            using (JsonSerialization.DeserializeFromPath("test.json", ref dst))
            {
                Assert.That(src, Is.EqualTo(dst));
            }

            File.Delete("test.json");
        }
Пример #2
0
        static ArtifactData GetArtifactData(BuildConfiguration config)
        {
            if (config == null)
            {
                return(null);
            }

            var name      = GetBuildConfigurationName(config);
            var assetPath = GetArtifactsPath(name);

            if (!File.Exists(assetPath))
            {
                if (s_ArtifactDataCache.ContainsKey(name))
                {
                    s_ArtifactDataCache.Remove(name);
                }
                return(null);
            }

            if (!s_ArtifactDataCache.TryGetValue(name, out var artifactData))
            {
                try
                {
                    artifactData = new ArtifactData();
                    using (var result = JsonSerialization.DeserializeFromPath(assetPath, ref artifactData))
                    {
                        if (!result.Succeeded)
                        {
                            var errors = result.AllEvents.Select(e => e.ToString());
                            LogDeserializeError(string.Join("\n", errors), artifactData, assetPath);
                            artifactData = null;
                        }
                    }
                }
                catch (Exception e)
                {
                    LogDeserializeError(e.Message, artifactData, assetPath);
                    artifactData = null;
                }

                s_ArtifactDataCache.Add(name, artifactData);
            }

            return(artifactData);
        }