- あひる隊長
- 常連さん
- 会議室デビュー日: 2003/07/23
- 投稿数: 36
|
投稿日時: 2004-10-05 16:47
以下のクラスがあったとします。
| コード: |
|
class SampleClass
{
string value1;
string value2;
}
|
このクラスを以下のコードでXMLシリアライズします
| コード: |
|
SampleClass obj = new SampleClass();
StringWriter wr = new StringWriter();
XmlSerializer serializer = new XmlSerializer(obj.GetType());
serializer.Serialize(wr, obj);
Console.WriteLine(writer.ToString());
|
これだと
| コード: |
|
"<?xml version="1.0" encoding="utf-16"?>
<SampleClass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="">
</SampleClass>
|
と表示されてしまいます・・
フィールド値がnullの場合でも
| コード: |
|
"<?xml version="1.0" encoding="utf-16"?>
<SampleClass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="">
<value1></value1>
<value2></value2>
</SampleClass >"
|
とフィールド要素が表示されるようにすることはできるのでしょうか?
宜しくお願いいたします。
VS.NET2003 + Win2kServerです。
|
- chack
- 常連さん
- 会議室デビュー日: 2002/11/18
- 投稿数: 48
- お住まい・勤務地: 埼玉県
|
投稿日時: 2004-10-05 18:35
| コード: |
|
class SampleClass
{
public SampleClass()
{
value1 = "";
value2 = "";
}
public string value1;
public string value2;
}
|
としてコンストラクタで初期化してみてはどうですか?
または、
| コード: |
|
SampleClass obj = new SampleClass();
obj.value1 = "";
obj.value2 = "";
|
とか。
|
- Jitta
- ぬし
- 会議室デビュー日: 2002/07/05
- 投稿数: 6267
- お住まい・勤務地: 兵庫県・海手
|
投稿日時: 2004-10-05 22:25
それか、シリアル化メソッドを自作するか、ですね。
_________________
|
- あひる隊長
- 常連さん
- 会議室デビュー日: 2003/07/23
- 投稿数: 36
|
投稿日時: 2004-10-06 10:12
chackさん、Jittaさん
レスありがとうございます。
ちょっと大きなクラスになると見た目がよくないのですが、
空の値を設定してからシリアライズを行なうやり方で
やってみます。
ただ問題のクラスがXMLスキーマからXSDツールで自動生成
したクラスなので、コンストラクタではなく、呼び出し先
で設定することになりそうです。
ありがとうございました。
|
- MMX
- ぬし
- 会議室デビュー日: 2001/10/26
- 投稿数: 861
|
投稿日時: 2004-10-06 11:11
スキーマのデフォルト値はどうなのでしょう
|