none
Enum und Zahlen RRS feed

  • Frage

  • Tag zusammen,

    Gibt es eine Lösung, dass

    Enum BM As Integer
      1kg = 0
      100g = 1
    End Enum

    funktioniert?

    Danke


    Volker


    Und Abends ein Glas Wein von AMAVINO
    Freitag, 13. Januar 2012 13:24

Antworten

Alle Antworten

  • Hallo Volker,

    nein, das geht nicht. Siehe:

      http://msdn.microsoft.com/de-de/library/81ed9a62.aspx

    Setz mind. einen Buchstaben davor, dann gehts.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Freitag, 13. Januar 2012 13:47
    Moderator
  • Hallo Stefan,

    das war die Antwort, die ich nicht hören wollte. Aber gut.

    Zur Erklärung. Ich habe hier MS Dynamics NAV. Darauf kann man relativ einfach mit Webservices zugreifen. In diesen Webservices werden die Optionen für einzelne Felder mittels Enum dargestellt. NAV selbst kann mit Werten wie "1kg" in den Optionen umgehen. Als Enum wird aber so etwas grauenvolles wie "_x0031_kg" daraus.


    Volker


    Und Abends ein Glas Wein von AMAVINO
    Freitag, 13. Januar 2012 14:16
  • Hallo Volker,

    für einen Webservice könnte es gehen (hab ich aber nie probiert).

    Du kannst den Enumwerten über das XmlEnum Attribut Werte geben, die dann für die Webservices (Skript und Xml) verwendet werden. Ggfs. stören die sich nicht an einer Zahl als erstes Zeichen. Das sieht dann bspw. so aus:

    Imports System.Xml.Serialization
    
    Namespace MyNameSpace
    
    Public Class MyEnums
    
        Public Enum Blubb As Integer
            <XmlEnum( "--" )>   None          = 0
            <XmlEnum( "1Abc" )> Value1        = 1
            <XmlEnum( "2Def" )> ValueAbc      = 2
        End Enum
    
    End Class
    
    End NameSpace
    
    

    Wie gesagt, probiert hab ich das nicht. Wäre aber nett, wenn Du eine kurze Rückmeldung geben könntest, ob es funktioniert.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Freitag, 13. Januar 2012 14:37
    Moderator
  • Hi Stefan,

    das müßten dann aber die Jungs und Mädels bei MS in NAV einbauen. Darauf wie NAV seine Webservices veröffentlicht habe ich leider keinen Einfluß. Allerdings wird man Enum trotzdem nicht in VS verwenden können. Die Einschränkungen für die Namensgebung der Enum-Werte bleiben ja trotzdem bestehen.


    Volker
    Und Abends ein Glas Wein von AMAVINO
    Freitag, 13. Januar 2012 14:46
  • Hallo Volker,

    Nö. Das musst Du in deiner VB Anwendung einbauen. Es werden ja in der Regel Proxyklassen beim Abonnieren eines Webservice erzeugt. Die kannst Du genauso anpassen wie andere Codedateien auch.

    Du willst ja, wenn ich das richtig verstanden habe, in Nav mit Werten arbeiten, die dann über den Webservice als "1kg", "200g", ... übermittelt werden. In deiner VB Anwendung musst Du codeseitig mit den eigentlichen Werten arbeiten, also bspw.:

      Dim x As MyEnums.Blubb = MyEnums.Blubb.ValueAbc

    Der Webserviceproxy wird beim Erzeugen und Annehmen der XML Nachrichten mit dem XmlEnum Wert arbeiten und das automatisch richtig umsetzen.

    Nachtrag: Das mit dem "nicht probiert" bezieht sich nur auf die Zahlen an der ersten Stelle des XmlEnum Werts. Generell mit XmlEnums arbeite ich häufig, das funktioniert einwandfrei.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Freitag, 13. Januar 2012 14:51
    Moderator
  • Aber kurz mal den Webservice aktualisieren ist dann nicht mehr, oder?
    Und Abends ein Glas Wein von AMAVINO
    Freitag, 13. Januar 2012 14:57
  • Aber kurz mal den Webservice aktualisieren ist dann nicht mehr, oder?

    Bei dem angedachten Weg (Navision stellt die Webservices) nicht. Die Änderung muss dann immer nachgezogen werden, wobei sich das ja in überschaubaren Grenzen hält.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
    Freitag, 13. Januar 2012 15:11
    Moderator