私はASP.NET MVC Webアプリケーションで、単一のフォームを含むビューを持っています。フォームにはいくつかの異なるモデルのフィールドがありますので、必要なすべてのモデルが含まれているViewModel(ソート)を使用しています。私は、フォームに入力されたデータを、あらかじめ決められたXML構造に基づいてXMLにシリアル化する必要があります。モデルのコードは含まれていません。モデルに含まれる可能性のある他のモデルの「ナビゲーション」プロパティと同様に、それぞれにpublicプロパティがあるためです(詳細は以下の例があります)。ここで1つのASP.NET MVCビューから複数のクラスのインスタンスをシリアル化するにはどうすればよいですか?
Cargo.cs
CargoDetails.cs
Consignee.cs
Request.cs
Shipper.cs
Transmission.cs
TransmissionHeader.cs
希望XML構造です:
<Transmission>
<TransmissionHeader>
.
.
</TransmissionHeader>
*<Request>
.
.
*<Cargo>
<Shipper>
.
.
</Shipper>
<Consignee>
.
.
</Consignee>
*<CargoDetails>
.
.
</CargoDetails>
</Cargo>
</Request>
</Transmission>
*は、これらの要素の複数があるかもしれないことを示してここに私のモデルがあります。
簡潔にするために「ルート」要素内の要素は省略していますが、これらは明らかにモデル内のプロパティでもあるフォーム内のフィールドです。
XML構造でわかるように、他のすべての要素が含まれているため、Transmission.cs
を自分の「ViewModel」として使用しています。ここでTransmission
モデルのコードは次のとおりです。
[Serializable]
public class Transmission
{
public TransmissionHeader TransmissionHeader { get; set; }
public List<Request> Requests { get; set; }
}
は、どのように私はこのXML構造に基づいて、XMLをフォームに入力されたデータをシリアルについて行くことができますか?シリアル化されたフォームデータからXMLファイルを作成したいと思います。
さらに詳しいことができれば、教えてください。また、これの一部がうまく設定されていない場合は、私に知らせてください。これは、ASP.NET MVCでこのようなことをする私の最初の試みです。ありがとう。
Write Object Data to an XML File (C#)
XMLファイルにC#のオブジェクトを作成するには次のリンクを参照することができますすべてのフォームがそのインスタンスにアクセスできるようにします。何かが好きです:public static Transmission transmission {get;セット; }。 – jdwengあなたの問題は何ですか?それは1)あなたはいくつかのクラスを設計しており、XMLへのシリアライゼーションは失敗しますか?もしそうなら、例外の[mcve]と完全な 'ToString()'出力を共有してください。それとも2)あらかじめ定義されたXML構造を持っていて、それに合わせてC#クラスを設計する必要がありますか?後者の場合は、ヘルプが必要なサンプルXMLを参照する必要があります。 – dbc
あなたの質問はちょうど3)* C#でXMLにシリアライズする方法*?そのような場合には、すでに多くの同様の質問がある。 [オブジェクトをXMLにシリアル化する](https://stackoverflow.com/q/4123590)または[単純なクラスをXMLにシリアル化/逆シリアル化する方法](https://stackoverflow.com/q/3356976)を参照してください。あなたはこれらのいずれかをチェックしましたか? – dbc