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 :

.NetTiers | Problème de DAL dans une dll


Sujet :

C#

  1. #1
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut .NetTiers | Problème de DAL dans une dll
    Bonjour,

    Je travaille sur un projet avec .NetTiers pour me générer la DAL. Je ne suis pas certain que mon POST doit ici, mais je n'ai pas trouvé d'endroit propre à .NetTiers.

    Pour l'instant, j'ai travaillé avec une dll pour toute ma couche Business. Donc ma DAL était entièrement générée en une seule fois pour mon application. Maintenant, j'ai splitté ma couche Business en plusieurs modules. Chaque module constitue une dll générée dans une solution différente au niveau de Visual Studio. Les dll ayant besoin de certaines tables de la base de données ont leur DAL, propre aux tables nécessaires.

    Lorsque j'intègre toutes mes dll de module dans l'application, ça compile. Par contre, à l'exécution, mes dll de module n'arrivent pas à se connecter à la base de données. Voici l'exception générée :

    ProviderException :
    Unable to load NetTiersServiceSection
    Cela veut dire que ma dll module n'arrive pas à lire dans son fichier de configuration. Comment configurer cela? Est-ce qu'il faut un fichier de configuration propre à la dll ou elle va chercher dans le fichier de configuration de l'application ?

    Merci de votre aide, je suis complètement bloqué...

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par stephane.julien Voir le message
    Est-ce qu'il faut un fichier de configuration propre à la dll
    Oui, c'est mieux

  3. #3
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    Merci Thomas!

    Le problème est que lorsque ma dll tente d'accéder à son propre fichier de config via la méthode suivante, elle n'arrive pas à le lire :

    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
     
    get
    			{
    				// Try to get a reference to the default <netTiersService> section
    				_section = WebConfigurationManager.GetSection("netTiersService") as NetTiersServiceSection;
     
    				if ( _section == null )
    				{
    					// otherwise look for section based on the assembly name
    					_section = WebConfigurationManager.GetSection("SettingsManager.Data") as NetTiersServiceSection;
    				}
     
    				if ( _section == null )
    				{
    					throw new ProviderException("Unable to load NetTiersServiceSection");
    				}
     
    				return _section;
    			}
    C'est la méthode de WebConfiguration qui ne fonctionne pas.

    Peut-être que j'ai un simple problème de déploiement de ma dll... Voici comment je procède pour l'intégrer :

    Depuis le Visual Studio de mon application, j'ajoute la dll en tant que référence. Seulement, à ce moment, le fichier de configuration de la dll n'est pas inclu. Je le copie dans le répertoire du bin/Release... Est-ce correct?

    Merci de votre aide!

  4. #4
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    Je pense que le problème vient du fait que le bout de code suivant n'arrive pas à lire dans le fichier de configuration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WebConfigurationManager.GetSection();
    Je tiens à préciser que je travaille avec une application WinForms et non une application web. Par contre, .NetTiers me génère du code qui utilise WebConfigurationManager au lieu de CongurationManager. Je ne sais pas si cela a de l'împortance. A mon avis non.

    Par contre, pourquoi ma dll n'arrive pas à lire le fichier de configuration de l'application?

  5. #5
    Membre habitué Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Points : 130
    Points
    130
    Par défaut
    Voilà, problème résolu. En fait, ma dll allait bien lire dans le fichier de configuration, seulement il fallait définir une structure bien spéciale à l'intérieure, cela pour .NetTiers. Pour info, voici le contenu de mon fichier :

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="Data"
      type="Data.Bases.NetTiersServiceSection, Data"
      allowDefinition="MachineToApplication"
      restartOnExternalChanges="true" />
        <section name="SettingsManager.Data"
      type="SettingsManager.Data.Bases.NetTiersServiceSection, SettingsManager.Data"
      allowDefinition="MachineToApplication"
      restartOnExternalChanges="true" />
        <section name="TraductionDictionary.Data"
      type="TraductionDictionary.Data.Bases.NetTiersServiceSection, TraductionDictionary.Data"
      allowDefinition="MachineToApplication"
      restartOnExternalChanges="true" />
      </configSections>
     
      <connectionStrings>
        <add name="netTiersConnectionString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DATABASE;Integrated Security=True" />
      </connectionStrings>
     
      <Data defaultProvider="SqlNetTiersProvider">
        <providers>
          <add
     name="SqlNetTiersProvider"
     type="Data.SqlClient.SqlNetTiersProvider, Data.SqlClient"
     connectionStringName="netTiersConnectionString"
     providerInvariantName="System.Data.SqlClient"
     entityFactoryType="Entities.EntityFactory"
     useEntityFactory="true"
     enableEntityTracking="false"
     enableMethodAuthorization="false"
     useStoredProcedure="false"
      />
        </providers>
      </Data>
     
      <SettingsManager.Data defaultProvider="SqlNetTiersProvider">
        <providers>
          <add
        name="SqlNetTiersProvider"
        type="SettingsManager.Data.SqlClient.SqlNetTiersProvider, SettingsManager.Data.SqlClient"
        connectionStringName="netTiersConnectionString"
        providerInvariantName="System.Data.SqlClient"
        entityFactoryType="SettingsManager.Entities.EntityFactory"
        useEntityFactory="true"
        enableEntityTracking="false"
        enableMethodAuthorization="false"
        useStoredProcedure="false"
      />
        </providers>
      </SettingsManager.Data>
     
      <TraductionDictionary.Data defaultProvider="SqlNetTiersProvider">
        <providers>
          <add
        name="SqlNetTiersProvider"
        type="TraductionDictionary.Data.SqlClient.SqlNetTiersProvider, TraductionDictionary.Data.SqlClient"
        connectionStringName="netTiersConnectionString"
        providerInvariantName="System.Data.SqlClient"
        entityFactoryType="TraductionDictionary.Entities.EntityFactory"
        useEntityFactory="true"
        enableEntityTracking="false"
        enableMethodAuthorization="false"
        useStoredProcedure="false"
      />
        </providers>
      </TraductionDictionary.Data>
    </configuration>

    J'ai donc mon projet principal et deux dll qui ont leur DAL. Un module de settings et un module de traduction. Cette configuration est bien entendu propre à .NetTiers et à mes projets.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de ProgressBar dans une dll
    Par terminator59140 dans le forum C#
    Réponses: 6
    Dernier message: 02/06/2008, 19h26
  2. [YES::ENGINE]Problème d'exportation dans une dll
    Par trecks dans le forum Moteurs 3D
    Réponses: 2
    Dernier message: 30/11/2007, 08h26
  3. Problème Acces Violation dans une DLL d'envoi de mail
    Par Avisseau dans le forum Delphi
    Réponses: 1
    Dernier message: 25/10/2006, 16h48
  4. Réponses: 4
    Dernier message: 16/05/2006, 23h15
  5. Problèmes avec un TWebBrowser dans une DLL
    Par bellamyjc dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/01/2005, 22h35

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