[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 メーリングリストの案内