Ich hatte gerade einen Laptop-Crash (verschüttetes Wasser darauf). Ich habe meinen Arbeitscode (vor 2 Tagen Sicherung) von einem Windows Server 2008-Laptop auf einen Vista-Laptop mit Visual Studio 2008 SP1 kopiert. Beide verwenden .NET 3.5 SP1.Was kann dazu führen, dass Eigenschaften in einer .NET-Service-Referenz beim Aufruf ungültig werden?
Ich habe einen Web-Methodenaufruf, der Produktinformationen zurückgibt.
Einige der Felder in der Web-Service (auf einem gehosteten Server ausgeführt wird) sind wie folgt:
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;
}
Wenn betreibe ich eine 'GetProduct'
Web-Methode die 'Sections'
Eigenschaft in meinem C# Client bevölkert wird (auf der neuer Laptop), aber die 'MediaItems
Eigenschaft ist nicht. Es erscheint nur als Null im Überwachungsfenster.
Also ich schaue in Fiddler und beide sind in der XML aufgefüllt. Beide sind Listen, die in meinem Proxy als Standard [] - Arrays definiert sind.
Sie haben vielleicht bemerkt, dass ich oben eine "Foo" -Eigenschaft hinzugefügt habe. Ich habe das auf dem Server gemacht, die Web-Referenz neu kompiliert und neu erstellt. Ich konnte bestätigen, dass die "Foo" -Eigenschaft in dem Client zustande gekommen ist. Es ist also nicht so, dass 'MediaItems' groß geschrieben wird oder ähnliches.
Ich bin ziemlich überzeugt, dass es auf diesem neuen Laptop etwas gibt, das sich von dem anderen unterscheidet. Ich hatte wirklich nichts Neues geschrieben, nur anderswo Änderungen vorgenommen. Und ich habe den Service-Referenz-Proxy noch nicht einmal neu erstellt, bis ich ein Problem bemerkte. Eine andere Instanz meines Clients, die auf einem Testserver ausgeführt wird, läuft einwandfrei, wenn derselbe Dienst ausgeführt wird.
Fixed Laptop kommt morgen zurück, aber ich würde wirklich gerne auf den Grund gehen. Ich bin ziemlich verwirrt. Ich habe schon so viele seltsame Dinge gesehen, aber ich kann wirklich nicht sehen, was hier los ist. Kann ich irgendwie in den Proxy debuggen?