IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Properties.Settings passage en paramètres d'une fonction


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Juillet 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Juillet 2006
    Messages : 133
    Points : 90
    Points
    90
    Par défaut Properties.Settings passage en paramètres d'une fonction
    Bonjour bonjour,

    J'ai une question concernant le passage en paramètre d'une fonction des Properties.Settings d'une appli.
    Je vais essayer d'être clair mais étant débutant n'hésitez pas à me le dire s'il faut que je précise quelque chose.
    J'ai une solution avec 2 projet :
    - 1 projet de Formulaire qui contient tous le visuel (MyOwnBlindTestForm)
    - 1 projet de classe qui ne contient que des classes (MyOwnBlindTestLib)
    (rien que ça je ne sais pas si c'est trop normalisé ?! :S)

    J'ai écri une fonction qui me permet d'importer des informations stocké dans la "configuration" de l'appli Properties.Settings.Default :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    namespace MyOwnBlindTestLib
    {
    public class RulesClass
    {
            public void importFromSettings()
            {
                System.Configuration.SettingsPropertyCollection Props = MyOwnBlindTestLib.Properties.Settings.Default;
                foreach (System.Configuration.SettingsProperty currentProperty in Props)
                {
                    var valeur = MyOwnBlindTestLib.Properties.Settings[currentProperty.Name];
                    Type type = this.GetType();
                    System.Reflection.PropertyInfo prop = type.GetProperty(currentProperty.Name);
                    prop.SetValue(this, valeur, null);
                }
            }
    }
    }
    Mon problème est donc sur le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyOwnBlindTestLib.Properties
    Il ne reconnait pas, car je ne l'ai pas mis dans mes références donc normal.
    Mais ma volonté de créer ces 2 Projets c'était de rendre le visuel totalement indépendant du fond.

    Donc y a t'il moyen de passer MyOwnBlindTestLib.Properties.Settings.Default et MyOwnBlindTestLib.Properties.Settings en paramètre de ma fonction importFromSettings ?
    Dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void importFromSettings(ref ??? Settings, ref ??? Default)
     
    importFromSettings(MyOwnBlindTestLib.Properties.Settings,Properties.Settings.Default)
    Merci de votre aide !

    Gabvoir

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Points : 117
    Points
    117
    Par défaut
    la configuration qui est chargée par défaut est celle du projet principal.
    Si tu souhaites accéder aux propriétés des librairies utilisées, il faut rajouter le bloc dans l'app.config de l'application principale il me semble.

    A verifier...

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Juillet 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Juillet 2006
    Messages : 133
    Points : 90
    Points
    90
    Par défaut
    Merci pour ta réponse !

    En effet ca doit bien se trouvé dans ce app.config mais comment définir cette confirguration accessible dans toute la solution ?

    Voila mon app.config :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <?xml version="1.0"?>
    <configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="MyOwnBlindTestForm.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
        <userSettings>
            <MyOwnBlindTestForm.Properties.Settings>
                <setting name="general_numberOfPlayers" serializeAs="String">
                    <value>0</value>
                </setting>
                <setting name="general_numberOfKeys" serializeAs="String">
                    <value>0</value>
                </setting>
                <setting name="general_numberOfPropositions" serializeAs="String">
                    <value>0</value>
                </setting>
                <setting name="music_percentageBegin" serializeAs="String">
                    <value>0</value>
                </setting>
                <setting name="music_percentageEnd" serializeAs="String">
                    <value>0</value>
                </setting>
                <setting name="rating_autoValidate" serializeAs="String">
                    <value>False</value>
                </setting>
                <setting name="rating_autoDecrease" serializeAs="String">
                    <value>False</value>
                </setting>
                <setting name="rating_loosingPoints" serializeAs="String">
                    <value>0</value>
                </setting>
                <setting name="proposal_proposalEnabled" serializeAs="String">
                    <value>False</value>
                </setting>
                <setting name="proposal_numberOfProposals" serializeAs="String">
                    <value>0</value>
                </setting>
                <setting name="proposal_timeBeforeShowing" serializeAs="String">
                    <value>0</value>
                </setting>
                <setting name="piepiece_pieEnabled" serializeAs="String">
                    <value>False</value>
                </setting>
                <setting name="piepiece_numberOfPies" serializeAs="String">
                    <value>0</value>
                </setting>
            </MyOwnBlindTestForm.Properties.Settings>
        </userSettings>
    </configuration>

    Merci pour l'aide !

  4. #4
    Membre régulier
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Juillet 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Juillet 2006
    Messages : 133
    Points : 90
    Points
    90
    Par défaut
    Pour compléter ce app.config a été écrit automatiquement par VS2010 il est accompagné d'un fichier settings.designer.cs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    //------------------------------------------------------------------------------
    // <auto-generated>
    //     Ce code a été généré par un outil.
    //     Version du runtime :4.0.30319.18444
    //
    //     Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
    //     le code est régénéré.
    // </auto-generated>
    //------------------------------------------------------------------------------
     
    namespace MyOwnBlindTestForm.Properties {
     
     
        [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
        [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
        internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
     
            private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
     
            public static Settings Default {
                get {
                    return defaultInstance;
                }
            }
     
            [global::System.Configuration.ApplicationScopedSettingAttribute()]
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [global::System.Configuration.DefaultSettingValueAttribute("0")]
            public int general_numberOfPlayers {
                get {
                    return ((int)(this["general_numberOfPlayers"]));
                }
            }
     
            [global::System.Configuration.ApplicationScopedSettingAttribute()]
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [global::System.Configuration.DefaultSettingValueAttribute("0")]
            public int general_numberOfKeys {
                get {
                    return ((int)(this["general_numberOfKeys"]));
                }
            }
     
            [global::System.Configuration.ApplicationScopedSettingAttribute()]
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [global::System.Configuration.DefaultSettingValueAttribute("0")]
            public int general_numberOfPropositions {
                get {
                    return ((int)(this["general_numberOfPropositions"]));
                }
            }
     
            [global::System.Configuration.ApplicationScopedSettingAttribute()]
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [global::System.Configuration.DefaultSettingValueAttribute("0")]
            public int music_percentageBegin {
                get {
                    return ((int)(this["music_percentageBegin"]));
                }
            }
     
            [global::System.Configuration.ApplicationScopedSettingAttribute()]
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [global::System.Configuration.DefaultSettingValueAttribute("0")]
            public int music_percentageEnd {
                get {
                    return ((int)(this["music_percentageEnd"]));
                }
            }
     
            [global::System.Configuration.ApplicationScopedSettingAttribute()]
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [global::System.Configuration.DefaultSettingValueAttribute("False")]
            public bool rating_autoValidate {
                get {
                    return ((bool)(this["rating_autoValidate"]));
                }
            }
     
            [global::System.Configuration.ApplicationScopedSettingAttribute()]
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [global::System.Configuration.DefaultSettingValueAttribute("False")]
            public bool rating_autoDecrease {
                get {
                    return ((bool)(this["rating_autoDecrease"]));
                }
            }
     
            [global::System.Configuration.ApplicationScopedSettingAttribute()]
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [global::System.Configuration.DefaultSettingValueAttribute("0")]
            public int rating_loosingPoints {
                get {
                    return ((int)(this["rating_loosingPoints"]));
                }
            }
     
            [global::System.Configuration.ApplicationScopedSettingAttribute()]
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [global::System.Configuration.DefaultSettingValueAttribute("False")]
            public bool proposal_proposalEnabled {
                get {
                    return ((bool)(this["proposal_proposalEnabled"]));
                }
            }
     
            [global::System.Configuration.ApplicationScopedSettingAttribute()]
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [global::System.Configuration.DefaultSettingValueAttribute("0")]
            public int proposal_numberOfProposals {
                get {
                    return ((int)(this["proposal_numberOfProposals"]));
                }
            }
     
            [global::System.Configuration.ApplicationScopedSettingAttribute()]
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [global::System.Configuration.DefaultSettingValueAttribute("0")]
            public int proposal_timeBeforeShowing {
                get {
                    return ((int)(this["proposal_timeBeforeShowing"]));
                }
            }
     
            [global::System.Configuration.ApplicationScopedSettingAttribute()]
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [global::System.Configuration.DefaultSettingValueAttribute("False")]
            public bool piepiece_pieEnabled {
                get {
                    return ((bool)(this["piepiece_pieEnabled"]));
                }
            }
     
            [global::System.Configuration.ApplicationScopedSettingAttribute()]
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [global::System.Configuration.DefaultSettingValueAttribute("0")]
            public int piepiece_numberOfPies {
                get {
                    return ((int)(this["piepiece_numberOfPies"]));
                }
            }
        }
    }
    A savoir que j'arrivai à accéder à mes paramètres en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Properties.Settings.Default
    Mais j'ai trouvé sur internet qu'il était possible d'y accéder par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Configuration.ConfigurationSettings.AppSettings
    Mais qui m'a été vite mis obsolète par VS2010 et qui me conseille d'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Configuration.ConfigurationManager.AppSettings
    Avec cette dernière je pense pouvoir le passer ce AppSettings, mon problème maintenant c'est que mon app.config n'est plus reconnu et ne trouve pas mes paramètres configuré avec l'assistant VS2010.

    Qu'elle est la bonne utilisation des AppSettings ?
    L'assistant VS2010 ne m'a-t-il pas fait un truc un peu trop complexe ?

    Merci !

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Points : 117
    Points
    117
    Par défaut
    En fait, est ce que tu veux que les 2 Projets partages le meme fichier de configuration ?
    Si c'est le cas, alors il faut modifier un peu le fichier app.config pour mettre tes parametres comme ceci :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <configuration>
      <appSettings>
        <add key="general_numberOfPlayer" value="0"/>
        <add key="general_numberOfKeys" value="0"/>
      [...]
      </appSettings>
    </configuration>

    et quand tu souhaites acceder aux valeur, peut importe où tu te trouve dans tes librairies, l'appel sera toujours le meme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ConfigurationManager.AppSettings["general_numberOfPlayer"]
    Pour acceder a la valeur que tu as mise dans le fichier de configuration de l'application.

    Lorsque tu auras compilé, le fichier app.config va changer de nom pour s'appeller :
    nomdetonexe.exe.config

    J'espere avoir compris le probleme initial

  6. #6
    Membre régulier
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Juillet 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Juillet 2006
    Messages : 133
    Points : 90
    Points
    90
    Par défaut
    Super merci !

    Mon problème c'est exactement ce que tu dis.
    Je testerai et te dirais si ça marche !

    Gabvoir

Discussions similaires

  1. Réponses: 14
    Dernier message: 04/08/2009, 09h33
  2. Passage de paramètres dans une fonction
    Par Mickael2604 dans le forum Langage
    Réponses: 6
    Dernier message: 07/12/2008, 22h42
  3. Réponses: 6
    Dernier message: 31/05/2008, 15h45
  4. Réponses: 3
    Dernier message: 20/03/2006, 17h46
  5. Réponses: 9
    Dernier message: 13/05/2005, 03h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo