- - PR -
C#。デシリアライズ前提のシリアル化の制御制限を排除したい。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-11-05 19:36
XmlSerializerクラスでシリアル化を行う場合、デシリアライズを保障するためだと思うのですが、属性を使ったシリアル化制御に制限がかかっています。
例えば、ひとつのクラスの複数のフィールドを同じ要素名にするなどは排除されます。 public class Class1 { [XmlElement("Dummy")] public string test1; [XmlElement("Dummy")] public string test2; } しかし元のオブジェクトへのデシリアライズを前提としない場合(帳票アプリの入力に使うような場合)に、この制限が邪魔になるときがあります。 この制限をはずす方法はありますでしょうか? やはり、デシリアライズできることが絶対条件であり、別の用途であれば 独自のXML書き出しメソッドを用意する。後でXSLT変換する。 といった方法をとるのが妥当になるのでしょうか。 | ||||
|
投稿日時: 2005-11-06 14:50
自前でシリアライズ(XML化)する、という選択肢になると思います。
_________________ | ||||
|
投稿日時: 2005-11-06 15:51
Jittaさん回答ありがとうございます。
自前のシリアル化を検討します。 | ||||
|
投稿日時: 2005-11-06 16:26
あ、もうひとつ。
test1と、test2を、string配列にすることはできないのでしょうか?
_________________ | ||||
|
投稿日時: 2005-11-06 17:08
なるほど、うまい方法ですね。
配列だけでは別途要素ごとの意味を示す必要があるけれど、これは クライアントが意味あるプロパティ名を使用できるがうれしいですね。 今後の参考にいたします。 ありがとうございました。 |
1