[Seasar-s2dotnet 92] Re: S2Container.NET 1.0.0-RC1 リリース

菊池 和彦 kazuk
2005年 11月 12日 (土) 14:55:04 JST


菊池です。

#ここでは始めましてです。

> -----Original Message-----
> From: seasar-s2dotnet-bounces @ lists.sourceforge.jp
> [mailto:seasar-s2dotnet-bounces @ lists.sourceforge.jp] On
> Behalf Of Masanobu Shimura
> Sent: Saturday, November 12, 2005 9:26 AM
> To: seasar-s2dotnet @ lists.sourceforge.jp
> Subject: [Seasar-s2dotnet 91] Re: S2Container.NET 1.0.0-RC1 リリース
>
> c# 2.0への対応はまだとの事ですので、急ぎませんが VS 2005 c# Expressが正
式にReleaseされたので
> で試してみた所、下記 ERRORがでました。
>
> Cannot resolve external DTD subset - public ID =
> '-//SEASAR2.1//DTD S2Container//EN', system ID =
> 'http://www.seasar.org/dtd/components21.dtd'.
> A first chance exception of type ' System.Xml.XmlException'
> occurred in System.Xml.dll A first chance exception of type
> 'System.NullReferenceException' occurred in Seasar.dll A
> first chance exception of type
> 'System.NullReferenceException' occurred in Seasar.dll The
> program '[3768] Seasar.Examples.vshost.exe: Managed' has
> exited with code 0 (0x0).

 もうちょっと深いStackが見れれば特定できると思うのですが、発生位置は
XmlHandlerParserのParseではないでしょうか?

 2.0 でのコンパイル時に Obsolete のワーニング出てますよね。
 XmlValidatingReader が Obsolete されていてXmlReaderにXmlReaderSetting
としてValidating要求を渡すようになってます。

 XmlHandlerPerser.Parse の冒頭を以下のように書き換えるといけると思います。

        public object Parse(StreamReader input)
        {
#regison  Obsolete 対応 ここから
            XmlReaderSettings readerSetting = new XmlReaderSettings();
            readerSetting.ProhibitDtd = false;
            readerSetting.ValidationType = ValidationType.DTD;
            readerSetting.XmlResolver = new S2XmlResolver();
            readerSetting.ValidationEventHandler +=
                new ValidationEventHandler(ValidationHandler);
            XmlReader reader = XmlReader.Create(
                    new XmlTextReader(input),readerSetting);
#endregion
	try
	{
                while(reader.Read())

 私は最初に ObsoleteのWarningを潰してから Seaser.Examplesを動かしたのです
が、
MS DTC トランザクション以外は動いてるように思います。(細かい確認はまだで
す)
 Obsolete 潰しはヘルプを見ながらで数10分でしたので、試してみてください。

--
 Kazuhiko Kikuchi <kazuk @ agate.plala.or.jp>
  Microsoft Most Valueable Professional (MSMVP) - Visual C# 2004



seasar-dotnet メーリングリストの案内