2009-05-13 15 views
0

最近、WCFを使用してREST APIを使用しました。 REST APIレスポンスからヌル値をシリアライズ

<grid-cell-size type="decimal" nil="true"/> 

と私のC#クラスで

[XmlElement("grid-cell-size")] 
public decimal? GridCellSize { get; set; } 

が、結果は入力文字列がでなかったです、私はREST XML REPONSEをシリアル化するエンティティクラスを使用し、ここで私は問題を抱えている部分です正しい形式。エラーメッセージ。

XMLからnull値を受け入れるようにC#コードを変更するにはどうすればよいですか? 'XSI' プレフィックスを追加すること

+0

私は[XmlElement( "grid-cell-size")、IsNullable = true]もテストしましたが、変更はありませんでした。 –

+0

これも動作しますが、私は余分なコードを追加したくありません! [XmlElement( "grid-cell-size")] 保護された文字列GridCellSizeString {get;セット; } プライベート10進数? _gridCellSize; 公開小数? GridCellSize { \t取得 \t { \t \t場合 \t \t { \t \tリターンConvert.ToDecimal(GridCellSizeString)(String.IsNullOrEmpty(GridCellSizeString)!)。 \t} \t else \t { \t \t return null; \t} \t} \t set {_gridCellSize = Convert.ToDecimal(value); } } –

+0

ああ!私は似たような質問を見つけました! http://stackoverflow.com/questions/193185/is-it-possible-to-set-a-default-value-when-deserializing-xml-in-c-net-3-5 –

答えて

0

試してみてください。 の代わりに、当然の

<grid-cell-size type="decimal" nil="true"/> 

使用

<grid-cell-size xsi:type="decimal" xsi:nil="true"/> 

- メインノードに名前空間を追加することを忘れないでください: のxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema"

名前空間宣言(まだ宣言されていない場合)

関連する問題