Ich mache eine aspx Web Services in vb.net. Ich erhalte ein Objekt Array-Parameter den Rahmen Sorge um Guss Validierungen zu lassen, wie SieWeb Services aspx Eigenschaft der Klasse behält nicht den Standardwert
<ScriptMethod(ResponseFormat:=ResponseFormat.Json, XmlSerializeString:=False)> _
<WebMethod(True)> _
Public Function insertarUnidad(ByVal unidades() As unidad) As String
und ich habe eine öffentliche Klasse
definiertPublic Class unidad
Public Property id_unidad As String
Public Property nombre As String ="I'm Not Empty"
Public Property placas As String = "N"
END Class
es stellt mich heraus, dass, wenn ich das Debuggen sehen können, das Objekt Arrays haben nicht die Standardwerte einiger Eigenschaften wie placas, stattdessen haben sie den Wert "0". Dies ist der Standardwert für den Datentyp String. aber irgendwie in der Eigenschaft nombre hat es den Standardwert "Ich bin nicht leer".
Wie kann ich den Standardwert verwenden, den ich in die Eigenschaften einfüge, ohne sie zu verlieren?
Danke, sorry für mein schlechtes Englisch.
UPDATE
Die aspx war auf .net4.5 und von Web-App es war perfekt funktioniert, aber in einer Konsole App funktioniert nicht, da die Konsole App auf net4.0 war es fest Ändern des Framework-Ziels von 4.5 auf 4.0, Auch wenn die Konsolen-App im 4.5 Framework ist, funktioniert das Aspx perfekt.
Mit get/set für die Eigenschaften funktioniert es nicht wie erwartet, manchmal hat das Attribut den Standardwert der Eigenschaft, manchmal bekomme ich nichts statt "0", wie könnte ich wissen, wann ich bin werde nichts oder "0" in String, int, chat, dezimal usw. empfangen. danke für deine zeit. –
Sagst du manchmal, die Methode erhält nicht einmal die zusätzlichen Werte? Sie müssten dann eine neue, überladene Version davon erstellen. [check this out] (https://stackoverflow.com/questions/3921142/net-overload-webmethods-possible) –
Nein, wenn ich ein Array erhalte, wird das Framework versuchen, das Array auf ** unidad ** type zu transformieren Das bedeutet, dass einige Eigenschaften der Klasse mit dem Wert der Attribute des Arrays überschrieben werden, aber manchmal werde ich nicht alle Klasseneigenschaften in den Attributen des Arrays erhalten, deshalb setze ich einen Standardwert in den Klasseneigenschaften wie ** nombre ** mit "Ich bin nicht leer". Innerhalb der Funktion habe ich ein Objekt-Array vom Typ ** unidad ** mit den empfangenen Werten und den Standardwerten für den Fall, dass einige Werte nicht empfangen wurden –