差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

次のリビジョン
前のリビジョン
blog:2016:2016-04-13 [2016-04-13 17:26]
Decomo 作成
blog:2016:2016-04-13 [2016-10-24 12:58] (現在)
Decomo
行 1: 行 1:
 ====== C#でローカルのDTDファイルを使うXMLリゾルバを作る ====== ====== C#でローカルのDTDファイルを使うXMLリゾルバを作る ======
  
-以前、[[blog/2016/2016-02-24|C#でXmlDocumentを作る時にリゾルバでタイムアウトする]]と書いたが、ようやくローカルのDTDファイルを使ったXMLリゾルバが作れたので、コードをまるっと公開。尚、.NET Framework 4では殆ど同じことを行う''XmlPreloadedResolver''クラスが追加されているので、使えるならそっちを使うのが良い。悲しいかな、うちは.NET 3.5なのさ……+以前、[[2016-02-24|C#でXmlDocumentを作る時にリゾルバでタイムアウトする]]と書いたが、ようやくローカルのDTDファイルを使ったXMLリゾルバが作れたので、コードをまるっと公開。尚、.NET Framework 4では殆ど同じことを行う''XmlPreloadedResolver''クラスが追加されているので、使えるならそっちを使うのが良い。悲しいかな、うちは.NET 3.5なのさ……
  
 <code csharp> <code csharp>
行 78: 行 78:
                 AddDTD("xhtml-symbol.ent", @"http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent", @"path/to/xhtml-symbol.ent");                 AddDTD("xhtml-symbol.ent", @"http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent", @"path/to/xhtml-symbol.ent");
                 AddDTD("xhtml-special.ent", @"http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent", @"path/to/xhtml-special.ent");                 AddDTD("xhtml-special.ent", @"http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent", @"path/to/xhtml-special.ent");
 +            }
 +            
 +            ~DocTypeManager()
 +            {
 +                foreach (var pair in DTDStreamForURI)
 +                {
 +                    if (pair.Value != null)
 +                    {
 +                        pair.Value.Dispose();
 +                    }
 +                } 
             }             }
  
  • blog/2016/2016-04-13.1460535961.txt.gz
  • 最終更新: 2016-04-13 17:26
  • by Decomo