コード例 #1
0
        public void FixChecksum(string filename = "model.xml")
        {
            using (var dac = new DacHacXml(_path))
            {
                var originXml = dac.GetXml("Origin.xml");

                var sourceXml = dac.GetStream(filename);

                var calculatedChecksum =
                    BitConverter.ToString(
                        (HashAlgorithm.Create(_checksumProvider)
                            .ComputeHash(sourceXml))).Replace("-", "");
                ;

                var reader = XmlReader.Create(new StringReader(originXml));
                reader.MoveToContent();

                while (reader.Read())
                {
                    if (reader.Name == "Checksum" && reader.GetAttribute("Uri") == string.Format("/{0}", filename))
                    {
                        var oldChecksum = reader.ReadInnerXml();

                        if (oldChecksum == calculatedChecksum)
                            return;

                        originXml = originXml.Replace(oldChecksum, calculatedChecksum);

                        dac.SetXml("Origin.xml", originXml);

                        return;
                    }
                }
            }
        }
コード例 #2
0
        public void FixChecksum(string filename = "model.xml")
        {
            using (var dac = new DacHacXml(_path))
            {
                var originXml = dac.GetXml("Origin.xml");

                var sourceXml = dac.GetStream(filename);

                var calculatedChecksum =
                    BitConverter.ToString(
                        (HashAlgorithm.Create(_checksumProvider)
                         .ComputeHash(sourceXml))).Replace("-", "");
                ;

                var reader = XmlReader.Create(new StringReader(originXml));
                reader.MoveToContent();


                while (reader.Read())
                {
                    if (reader.Name == "Checksum" && reader.GetAttribute("Uri") == string.Format("/{0}", filename))
                    {
                        var oldChecksum = reader.ReadInnerXml();

                        if (oldChecksum == calculatedChecksum)
                        {
                            return;
                        }

                        originXml = originXml.Replace(oldChecksum, calculatedChecksum);

                        dac.SetXml("Origin.xml", originXml);


                        return;
                    }
                }
            }
        }
コード例 #3
0
 public void CommitChanges()
 {
     _dac.SetXml("Model.xml", _xml);
 }