コード例 #1
0
            public static UpdateScript Parse(JSONObject jscript)
            {
                var script = new UpdateScript
                {
                    Version = Version.Parse(jscript["_updateScript"].Value)
                };

                if (script.Version != ScriptVersion)
                {
                    throw new UpdateScriptParseException("Script version mismatch");
                }

                jscript.Remove("_updateScript");

                foreach (var kvp in jscript)
                {
                    var obj = kvp.Value.AsObject;
                    var pvi = new PluginVersionInfo
                    {
                        Version  = obj.Linq.Any(p => p.Key == "version") ? Version.Parse(obj["version"].Value) : null,
                        Download = obj.Linq.Any(p => p.Key == "download") ? new Uri(obj["download"].Value) : null,

                        NewName   = obj.Linq.Any(p => p.Key == "newName") ? obj["newName"] : null,
                        NewScript = obj.Linq.Any(p => p.Key == "newScript") ? new Uri(obj["newScript"]) : null
                    };
                    if (pvi.NewName == null && pvi.NewScript == null && (pvi.Version == null || pvi.Download == null))
                    {
                        throw new UpdateScriptParseException($"Required fields missing from object {kvp.Key}");
                    }

                    script.info.Add(kvp.Key, pvi);
                }

                return(script);
            }
コード例 #2
0
 /// <summary> PluginVersionInfoをシリアル化してセーブします。
 /// </summary>
 /// <param name="pPluginVersionInfo"> シリアル化したいPluginVersionInfo </param>
 /// <param name="pSaveFullPath"> (ファイル名を含む)セーブパス </param>
 public void XmlSave(PluginVersionInfo pPluginVersionInfo, string pSaveFullPath)
 {
     this.xmlSerializerProcess.XmlSave(pSaveFullPath, pPluginVersionInfo, true);
 }