Пример #1
0
        public static void TestWrite()
        {
            CEEvents ceEvents = new CEEvents
            {
                CEEvent = new CEEvent[]
                {
                    new CEEvent {
                        TerrainTypesRequirements = new TerrainType[][]
                        {
                            new TerrainType[] {
                                TerrainType.Water,
                                TerrainType.Steppe
                            }
                        }
                    }
                }
            };

            string   xml      = GetEventXml(ceEvents, omitStandardNamespaces: true);
            string   fullPath = BasePath.Name + "Modules/zCaptivityEvents/ModuleLogs/TESTXML.xml";
            FileInfo file     = new FileInfo(fullPath);

            file.Directory?.Create();
            File.WriteAllText(BasePath.Name + "Modules/zCaptivityEvents/ModuleLogs/TESTXML.xml", xml);
        }
Пример #2
0
        public static List <CEEvent> DeserializeXMLFileToObject(string XmlFilename)
        {
            List <CEEvent> list = new List <CEEvent>();

            try
            {
                if (string.IsNullOrEmpty(XmlFilename))
                {
                    return(null);
                }
                StreamReader  textReader    = new StreamReader(XmlFilename);
                XmlSerializer xmlSerializer = new XmlSerializer(typeof(CEEvents));
                CEEvents      xsefsevents   = (CEEvents)xmlSerializer.Deserialize(textReader);
                list.AddRange(xsefsevents.CEEvent);
            }
            catch (Exception innerException)
            {
                TextObject textObject = new TextObject("{=CEEVENTS1001}Failed to load {FILE} for more information refer to Mount & Blade II Bannerlord\\Modules\\zCaptivityEvents\\ModuleLogs\\LoadingFailedXML.txt");
                textObject.SetTextVariable("FILE", XmlFilename);
                InformationManager.DisplayMessage(new InformationMessage(textObject.ToString(), Colors.Red));

                throw new Exception("ERROR DeserializeXMLFileToObject:  -- filename: " + XmlFilename, innerException);
            }

            return(list);
        }
Пример #3
0
        public static string GetEventXml(CEEvents obj, XmlSerializer serializer = null, bool omitStandardNamespaces = false)
        {
            XmlSerializerNamespaces ns = null;

            if (omitStandardNamespaces)
            {
                ns = new XmlSerializerNamespaces();
                ns.Add("", ""); // Disable the xmlns:xsi and xmlns:xsd lines.
            }
            using (System.IO.StringWriter textWriter = new System.IO.StringWriter())
            {
                XmlWriterSettings settings = new XmlWriterSettings()
                {
                    Indent = true
                };                                                                      // For cosmetic purposes.
                using (XmlWriter xmlWriter = XmlWriter.Create(textWriter, settings))
                    (serializer ?? new XmlSerializer(obj.GetType())).Serialize(xmlWriter, obj, ns);
                return(textWriter.ToString());
            }
        }