System.Application.Exit

結局、Schemaをプログラム内で構成した。Schemaそのものに比べて数倍の文字数があるように見えるのだが。*1しかも、構成するためのクラスがたくさんあるので、ヘルプファイルと首っ引きだった。
その甲斐あって、ちゃんと動くようになったわけだが、ValidationEventHandlerでエラー時にアプリケーションを終了させるようにしようとしたら、何故かうまくいかない。
で、調べてみると、System.Application.Exitで終了させようとしたのが間違いで、System.Environment.Exitを使って終了させる、という記述を見つけた。なるほど、そのつもりでSystem.Application.Exitのヘルプをみると、「ウィンドウを閉じる」としか書かれていない。
・・・だったらCloseとかにしといてくれ、と思った。そもそもWindowを閉じたらWindowアプリケーションが終了しそうだが・・・コンストラクタで使ったので「閉じるウィンドウがなかった」ものらしい。
で、System.Environment.Exitに変えたら予想通りの終わるようになったが・・・指定した終了コードがデバッガに表示されない。何故だろう。微妙に変なところで命令を出しているので、メインのプロセスとは違うところに終了コードを出しているのだろうか。

*1:そして、SchemaはDTDの数倍の文字数がある。