+ /// <summary>\r
+ /// 座標値を読み込む。Coordinates メンバ初期化後いつ呼び出しても構わない。\r
+ /// </summary>\r
+ public void UpdateCoordinates()\r
+ {\r
+ string coordXml = strEXEのあるフォルダ + "Coordinates.xml";\r
+ \r
+ // デシリアライズ\r
+ if (File.Exists(coordXml))\r
+ {\r
+ using (XmlReader xr = XmlReader.Create(coordXml))\r
+ {\r
+ DataContractSerializer serializer = new DataContractSerializer(typeof(Coordinates.CCoordinates));\r
+ try\r
+ {\r
+ Coordinates = (Coordinates.CCoordinates) serializer.ReadObject( xr );\r
+ }\r
+ catch (SerializationException e)\r
+ {\r
+ Trace.TraceWarning( "Rel107以前の古いフォーマットのCoordinates.xmlが読み込まれました。無視します。\n" + e.Message );\r
+ }\r
+ }\r
+ }\r
+ // シリアライズ\r
+ XmlWriterSettings settings = new XmlWriterSettings();\r
+ settings.IndentChars = " ";\r
+ settings.Indent = true;\r
+ settings.NewLineChars = Environment.NewLine;\r
+ settings.Encoding = new System.Text.UTF8Encoding( false );\r
+ using ( XmlWriter xw = XmlTextWriter.Create( coordXml, settings ) )\r
+ {\r
+ //XmlSerializerNamespaces ns = new XmlSerializerNamespaces();\r
+ //ns.Add( String.Empty, String.Empty );\r
+\r
+ //StreamWriter sw = new StreamWriter( "test2.xml", false, Encoding.UTF8 );\r
+ //serializer.Serialize( sw, item, ns );\r
+ //sw.Close\r
+\r
+ DataContractSerializer serializer = new DataContractSerializer( typeof( Coordinates.CCoordinates ) );\r
+ serializer.WriteObject( xw, Coordinates );\r
+ //serializer.WriteStartObject( xw, Coordinates );\r
+ //xw.WriteAttributeString( "xmlns", "d1p1", "http://www.w3.org/2000/xmlns/",\r
+ // "http://schemas.microsoft.com/2003/10/Serialization/" );\r
+ //serializer.WriteObjectContent( xw, Coordinates );\r
+ //serializer.WriteEndObject( xw );\r
+ }\r
+\r
+ // もう一度デシリアライズ\r
+ if (File.Exists(coordXml))\r
+ {\r
+ using (XmlReader xr = XmlReader.Create(coordXml))\r
+ {\r
+ DataContractSerializer serializer = new DataContractSerializer(typeof(Coordinates.CCoordinates));\r
+ Coordinates = (Coordinates.CCoordinates)serializer.ReadObject(xr);\r
+ }\r
+ }\r
+ }\r
+\r
+\r
+ /// <summary>\r
+ /// 保存するxmlからnamespaceを削除するためのXmlTextWriter\r
+ /// </summary>\r
+ //public class MyXmlTextWriter : XmlTextWriter\r
+ //{\r
+ // private bool _ignoreAttr = false;\r
+\r
+ // public MyXmlTextWriter( TextWriter w )\r
+ // : base( w )\r
+ // {\r
+ // Debug.WriteLine( "create" );\r
+ // }\r
+\r
+ // public override string LookupPrefix( string ns )\r
+ // {\r
+ // Debug.WriteLine( "luprefix" );\r
+ // return string.Empty;\r
+ // }\r
+\r
+ // public override void WriteStartAttribute( string prefix, string localName, string ns )\r
+ // {\r
+ // Debug.WriteLine( "writestartattribute" );\r
+ // if ( String.Compare( prefix, "xmlns", true ) == 0 )\r
+ // {\r
+ // Debug.WriteLine( "[!]" );\r
+ // this._ignoreAttr = true;\r
+ // return;\r
+ // }\r
+ // }\r
+\r
+ // public override void WriteEndAttribute()\r
+ // {\r
+ // if ( this._ignoreAttr )\r
+ // {\r
+ // this._ignoreAttr = false;\r
+ // return;\r
+ // }\r
+ // base.WriteEndAttribute();\r
+ // }\r
+\r
+ // public override void WriteString( string text )\r
+ // {\r
+ // Debug.WriteLine( "ws" );\r
+ // if ( String.Compare( text, "http://www.w3.org/2001/XMLSchema-instance", true ) == 0 )\r
+ // {\r
+ // return;\r
+ // }\r
+ // base.WriteString( text );\r
+ // }\r
+\r
+ // public override void WriteStartElement( string prefix, string localName, string ns )\r
+ // {\r
+ // Debug.WriteLine( "wse" );\r
+ // base.WriteStartElement( null, localName, null );\r
+ // }\r
+ //}\r