Einstellungen aus der app.config lesen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Einstellungen aus der app.config lesen

    Hallo Zusammen!!

    Nun habe ich eine weitere Frage. Und zwar habe ich eine app.config erstellt in der die Einstellungen beim Aufrufen der URLdurchgeführt werden sollen.
    Die Frage ist nun, wie ich diese Daten dem Programm übergeben kann.

    Der Teil der app.config sieht so aus:

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <configuration >
    3. <configSections>
    4. <sectionGroup name="appSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
    5. <section name="WebBrowser1.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    6. </sectionGroup>
    7. </configSections>
    8. <startup>
    9. <runtime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
    10. </startup>
    11. <system.diagnostics>
    12. <sources>
    13. <!-- This section configures My.Application.Log -->
    14. <source name="DefaultSource" switchName="DefaultSwitch">
    15. <listeners>
    16. <add name="FileLog"/>
    17. </listeners>
    18. </source>
    19. </sources>
    20. <switches>
    21. <add name="DefaultSwitch" value="Information" />
    22. </switches>
    23. <sharedListeners>
    24. <add name="FileLog"
    25. type="Microsoft.VisualBasic.Logging.FileLogTraceListener,
    26. Microsoft.VisualBasic, Version=8.0.0.0,
    27. Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
    28. initializeData="FileLogWriter" />
    29. <add name="EventLog"
    30. type="System.Diagnostics.EventLogTraceListener,
    31. System, Version=2.0.0.0,
    32. Culture=neutral, PublicKeyToken=b77a5c561934e089"
    33. initializeData="sample application"/>
    34. <add name="Delimited"
    35. type="System.Diagnostics.DelimitedListTraceListener,
    36. System, Version=2.0.0.0,
    37. Culture=neutral, PublicKeyToken=b77a5c561934e089"
    38. initializeData="c:\temp\sampleDelimitedFile.txt"
    39. traceOutputOptions="DateTime" />
    40. <add name="XmlWriter"
    41. type="System.Diagnostics.XmlWriterTraceListener,
    42. System, Version=2.0.0.0,
    43. Culture=neutral, PublicKeyToken=b77a5c561934e089"
    44. initializeData="c:\temp\sampleLogFile.xml" />
    45. <add name="Console"
    46. type="System.Diagnostics.ConsoleTraceListener,
    47. System, Version=2.0.0.0,
    48. Culture=neutral, PublicKeyToken=b77a5c561934e089"
    49. initializeData="true" />
    50. </sharedListeners>
    51. </system.diagnostics>
    52. <appSettings>
    53. <add key="TerminalInfo" value="TEST"/>
    54. <add key="Location" value="Hier"/>
    55. <add key="Language" value="de"/>
    56. <!--<add key="AnzeigeAktualisierungsInterval" value="10"/>-->
    57. <!--<add key="AnzeigeWechselInterval" value="1000"/>-->
    58. </appSettings>
    59. </configuration>


    Kann mir jemand weiter helfen, wo ich xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" und xmlns:xsd="http://www.w3.org/2001/XMLSchema" einfüge und zum anderen, wie ich das Programm dazu bekomme, die Config-Daten zu lesen.

    Ich weiß auch , dass ich irgendwo den Tag <WebBrowser1.My.MySettings></WebBrowser1.My.MySettings> einbauen muss, finde aber die Stelle einfach nicht :/


    Ich bin für jeden Tipp und jede Meinung, Verbesserungsvorschlag dankbar.

    Liebe Grüße!!

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „The_Boondock_Saints“ ()

    Ich habe jetzt auch nur die Einstellungen aus <appSettings> ausgelesen.
    Die anderen Daten habe ich jetzt erst einmal für weniger wichtig empfunden.

    VB.NET-Quellcode

    1. Public Class AppConfigReader
    2. ' Lesen der Einstellungen aus XML app.config
    3. Private Shared aSettingsReader As New System.Configuration.AppSettingsReader
    4. Private Shared strTerminalInfo As String = aSettingsReader.GetValue("TerminalInfo", GetType(String))
    5. Private Shared strLocation As String = aSettingsReader.GetValue("Location", GetType(String))
    6. Private Shared strLanguage As String = aSettingsReader.GetValue("Language", GetType(String))
    7. Private Shared strInterval As String = aSettingsReader.GetValue("Interval", GetType(String))
    8. Private Shared strLength As String = aSettingsReader.GetValue("Length", GetType(String))
    9. Private Shared strHeight As String = aSettingsReader.GetValue("Heigth", GetType(String))
    10. Public Shared strURL As String = aSettingsReader.GetValue("URL", GetType(String))
    11. Public Shared ReadOnly Property TerminalInfo() As String
    12. Get
    13. Return strTerminalInfo
    14. End Get
    15. End Property
    16. Public Shared ReadOnly Property Location() As String
    17. Get
    18. Return strLocation
    19. End Get
    20. End Property
    21. Public Shared ReadOnly Property Language() As String
    22. Get
    23. Return strLanguage
    24. End Get
    25. End Property
    26. Public Shared ReadOnly Property Interval() As String
    27. Get
    28. Return strInterval
    29. End Get
    30. End Property
    31. Public Shared ReadOnly Property Length() As String
    32. Get
    33. Return strLength
    34. End Get
    35. End Property
    36. Public Shared ReadOnly Property Heigth() As String
    37. Get
    38. Return strHeight
    39. End Get
    40. End Property
    41. Public Shadows ReadOnly Property URL() As String
    42. Get
    43. Return strURL
    44. End Get
    45. End Property
    46. End Class




    Diese können dann im Programm einfach übergeben werden.
    Zum Beispiel so:

    VB.NET-Quellcode

    1. Me.Timer1.Interval = AppConfigReader.Interval


    Aber ich glaube, es geht dir um die anderen Daten stimmts?Weil diese Weise wirst du sicher kennen :) Bei den anderen weiß ich auch noch nicht, wie ich es hinbekomme :/
    Habe aber jetzt ein anderes Problem. Da ich URL's in meine XML (app.config) schreibe. In den Links wird das Zeichen "&" in der app.config nicht erkannt, welche aber Parameter beim aufrufen der Seite übergibt. Es wird nur ; erlaubt.
    Es ist ja nicht schwer, das durch ein & zu ersetzen im Programm, jedoch bei vielen URL's ist es umständlich diese in der app.config von normalerweise & auf ; zu ändern.

    XML-Quellcode

    1. htm?anz=10&kostl=4224
    --> ; erwartet, kostl wurde nicht als Entität gefunden. Was mach ich da?

    Edit: Habe jetzt eine neue Entität angelegt, aber es wird trotzdem ; erwartet. Waaaah :)

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8" ?>
    2. <!DOCTYPE configuration [
    3. <!ENTITY kostl "Kostenstelle">
    4. ]>
    5. <configuration>


    Grüße

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „The_Boondock_Saints“ ()

    kinners, das ist doch das Rad neu erfunden. Und wies bei neu erfundenen Rädern so ist - die laufen meist viel holpriger.

    Den Nutzen, den du aus deinem umständlichen ConfigReader ziehst:

    VB.NET-Quellcode

    1. Me.Timer1.Interval = AppConfigReader.Interval
    habe ich sofort, und ohne jede ReaderSchreiberei, wenn ich ein Setting in den Anwendungseinstellungen anlege. Dann kannich auf dieselbe Weise wie du machen:

    VB.NET-Quellcode

    1. Me.Timer1.Interval = My.Settings.Interval

    Nur habe ich nicht eine Zeile Code dafür schreiben müssen, weil das schreibt der Application-Designer, wennich das Setting in den Projekteinstellungen anlege.

    Und - das alte Rad ist runder - Kannst natülich jedes Zeichen eingeben, in ein Setting, was als String eingerichtet ist.

    Noch runder: Wenn ichs entsprechend eingerichtet habe (Bereich: "Benutzer"), dann ist die generierte Property My.Settings.Interval sogar lese und schreibbar.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()