私はちょうどノートパソコンのクラッシュ(それに水をこぼした)があった。 Windows Server 2008のラップトップから、Visual Studio 2008 SP1を実行しているVistaのラップトップに作業コード(2日前のバックアップ)をコピーしました。どちらも.NET 3.5 SP1を実行しています。.NET Service Referenceのプロパティが呼び出し時にnullになる原因は何ですか?
私は製品情報を返すウェブメソッドコールを持っています。
次のようにWebサービスの一部のフィールド(ホストされたサーバー上で実行されている)がある:
public class Product
{
[XmlAttribute("sku")]
public string SKU;
[XmlAttribute("name")]
public string Name;
[XmlAttribute("category")]
public string CategoryName;
[XmlAttribute("categoryKey")]
public string CategoryKey;
public List<ProductSectionInfo> Sections;
public List<MediaItem> MediaItems;
public string Foo = "bar";
}
public class MediaItem
{
[XmlAttribute("type")]
public string Type;
[XmlAttribute("imageKey")]
public string ImageKey;
[XmlAttribute("path")]
public string Path;
[XmlAttribute("thumbnailPath")]
public string ThumbnailPath;
[XmlAttribute("thumbnailImageKey")]
public string ThumbnailImageKey;
[XmlAttribute("selectable")]
public bool Selectable;
}
私は'GetProduct'
Webメソッドを実行すると'Sections'
プロパティが上(私のC#クライアントに移入されています新しいラップトップ)が、'MediaItems
のプロパティはそうではありません。ウォッチウィンドウにはヌルとして表示されます。
私はFiddlerを見て、どちらもXMLに取り込まれています。どちらもListで、標準の[]配列としてプロキシで定義されています。
上記の「Foo」プロパティを追加したことにお気づきかもしれません。私はサーバー上でこれを行い、Web参照を再コンパイルして再作成しました。私はクライアントで 'Foo'プロパティが出現したことを確認できました。だから、その 'MediaItems'は大文字で書かれています。
私は確かに、この新しいノートパソコンには他とは異なるものがあると確信しています。私は本当に新しいものを書いていなかったし、他の場所でしか変更を加えていなかった。そして、私は問題に気づくまでサービス参照プロキシを再作成しませんでした。テストサーバー上で実行されているクライアントの別のインスタンスが、同じサービスを正常に実行しています。
固定ラップトップは明日戻ってきますが、私は本当にこれの底に到達したいと思います。私はかなり困惑しています。私はこの前にこのような奇妙なことを見たことがありますが、実際には何が起こっているのかは分かりません。何とかプロキシにデバッグできますか?