2011-07-13 12 views
0

.NETフレームワークに付属のxsdツールを使用してXMLファイルからクラスを作成しました。私はそれを私のソリューションに含めました。作成されたクラスには多くのクラスが含まれています。XSD生成クラスを使用してC#でXMLを逆シリアル化しますか?

StreamReader str = new StreamReader(@"c:\t.xml"); 
XmlSerializer xSerializer = new XmlSerializer(typeof(SomeClassFromCreatedClass)); 
SomeClassFromCreatedClassexporis = (SomeClassFromCreatedClass)xSerializer.Deserialize(str); 

問題があり、それは3行目でXML-ドキュメント(2,2)でエラーを言います。だから、一般的には、作成したクラスのどれを使うべきですか?何が問題なの? XMLスキーマは、多くの異なるタイプの(別々の要素のいずれか又はやすく、ネストされた複合型)を定義するよう

答えて

1

:-)

おかげでサウンド。 Xsdはネストされた複合型ごとに別々のクラスを生成するので、どの型が階層のルートであるかを確認する必要があります。これは、Xsd.exeではではXsd2Code :)

+0

Xsd2Codeを使用しても何も変更されませんでした...私はまだエラーが発生します。どのように階層のルートであるかを知るには? – grady

+0

解決策が見つかりました。ここをクリックしてください:http://satov.blogspot.com/2006/12/xsdexe-generated-classes-causing.html – grady

+1

あなたの質問は「作成したクラスのうちどれを使ってください? 。リンク先のソリューションは、その質問には関連していません。今後のご質問で具体的にお答えください。 – MattDavey

0

問題のようなものを使用して、非常に限らはるかに優れている..あなたはデシリアライズする:)

を別々のノートで必要なタイプになりますのエラー報告でありますXMLデシリアライザ。

内部の例外をすべてドリルダウンすると、実際のエラーが発生しますが、これはかなり痛いものです。

関連する問題