OVH Cloud OVH Cloud

pb avec les references

3 réponses
Avatar
bonjour a tous !

j'ai un pb avec les references dans mes projets.

j'explique :

j'ai une solution qui comporte 4 projets (1 EXE et 3 DLL)
Une de mes DLL fait reference a une DLL externe=20
commerciale.

He bien si je n'ajoute pas cette reference de DLL=20
commerciale dans tous les projets qui utilisent ma propre=20
DLL, le compilateur m'engueule !

Texto, le message est le suivant :

"c:\Dev\BackTCS\bin\BackT.Isin.dll La classe
r=E9f=E9renc=E9e 'BackT.ClsIsinArrayList' poss=E8de une classe
de base ou une interface 'DevExpress.Data.IRelationList'
d=E9finie dans un assembly qui n'est pas r=E9f=E9renc=E9.=20
Vous devez ajouter une r=E9f=E9rence =E0=20
'assembly 'DevExpress.Data'."

J'ai bien la reference souhaites dans LE projet qui=20
utilise cette DLL externe mais voila, monsieur veut que=20
j'ajoute cette reference dans les projets qui utilisent ma=20
DLL a moi sinon il compile pas.

Kekun peut m'expliquer??


Je precise que pour l'instant, mes references se font=20
entre les projets.

3 réponses

Avatar
Lionel LASKE
Je pense que c'est un problème de visibilité. Ta classe ClsIsinArrayList
implémente ou dérive d'une classe de ta DLL externe et comme cet héritage
est public les DLLs utilisant cette classe peuvent également avoir besoin de
la classe de base et s'attendent donc à avoir une référence sur elle.
L'héritage privé n'existe pas en C#, le seul moyen que je vois pour éviter
ton problème est donc que ClsIsinArrayList contienne un membre
DevExpress.Data.IRelationList plutôt qu'elle en soit dérivée.

class A : B
{
...
};

devient:

class A
{
private B b;
...
};


Lionel.


a écrit dans le message de news:
28d901c50985$3534f2d0$

bonjour a tous !

j'ai un pb avec les references dans mes projets.

j'explique :

j'ai une solution qui comporte 4 projets (1 EXE et 3 DLL)
Une de mes DLL fait reference a une DLL externe
commerciale.

He bien si je n'ajoute pas cette reference de DLL
commerciale dans tous les projets qui utilisent ma propre
DLL, le compilateur m'engueule !

Texto, le message est le suivant :

"c:DevBackTCSbinBackT.Isin.dll La classe
référencée 'BackT.ClsIsinArrayList' possède une classe
de base ou une interface 'DevExpress.Data.IRelationList'
définie dans un assembly qui n'est pas référencé.
Vous devez ajouter une référence à
'assembly 'DevExpress.Data'."

J'ai bien la reference souhaites dans LE projet qui
utilise cette DLL externe mais voila, monsieur veut que
j'ajoute cette reference dans les projets qui utilisent ma
DLL a moi sinon il compile pas.

Kekun peut m'expliquer??


Je precise que pour l'instant, mes references se font
entre les projets.
Avatar
C'est assez special car la meme chose en VB.NEt fonctionne
bien. Je me met au C# et j'en profite pour convertir un
projet deja ecrit en VB.NET....

Si quelqu'un a un avis sur la chose, il est le bienvenue.

Merci pour votre aide



-----Message d'origine-----

Je pense que c'est un problème de visibilité. Ta classe


ClsIsinArrayList
implémente ou dérive d'une classe de ta DLL externe et


comme cet héritage
est public les DLLs utilisant cette classe peuvent


également avoir besoin de
la classe de base et s'attendent donc à avoir une


référence sur elle.
L'héritage privé n'existe pas en C#, le seul moyen que je


vois pour éviter
ton problème est donc que ClsIsinArrayList contienne un


membre
DevExpress.Data.IRelationList plutôt qu'elle en soit


dérivée.

class A : B
{
...
};

devient:

class A
{
private B b;
...
};


Lionel.


a écrit dans le


message de news:
28d901c50985$3534f2d0$

bonjour a tous !

j'ai un pb avec les references dans mes projets.

j'explique :

j'ai une solution qui comporte 4 projets (1 EXE et 3 DLL)
Une de mes DLL fait reference a une DLL externe
commerciale.

He bien si je n'ajoute pas cette reference de DLL
commerciale dans tous les projets qui utilisent ma propre
DLL, le compilateur m'engueule !

Texto, le message est le suivant :

"c:DevBackTCSbinBackT.Isin.dll La classe
référencée 'BackT.ClsIsinArrayList' possède une classe
de base ou une interface 'DevExpress.Data.IRelationList'
définie dans un assembly qui n'est pas référencé.
Vous devez ajouter une référence à
'assembly 'DevExpress.Data'."

J'ai bien la reference souhaites dans LE projet qui
utilise cette DLL externe mais voila, monsieur veut que
j'ajoute cette reference dans les projets qui utilisent ma
DLL a moi sinon il compile pas.

Kekun peut m'expliquer??


Je precise que pour l'instant, mes references se font
entre les projets.




.



Avatar
je crois avoir trouve la raison.

c'est a cause de l'espace de nommage namespace

j'ai mis le meme espace de nom pour tous mes projets
je viens d'en changer un puis j'ai vire la reference
externe et ca compile...


-----Message d'origine-----

bonjour a tous !

j'ai un pb avec les references dans mes projets.

j'explique :

j'ai une solution qui comporte 4 projets (1 EXE et 3 DLL)
Une de mes DLL fait reference a une DLL externe
commerciale.

He bien si je n'ajoute pas cette reference de DLL
commerciale dans tous les projets qui utilisent ma propre
DLL, le compilateur m'engueule !

Texto, le message est le suivant :

"c:DevBackTCSbinBackT.Isin.dll La classe
référencée 'BackT.ClsIsinArrayList' possède une classe
de base ou une interface 'DevExpress.Data.IRelationList'
définie dans un assembly qui n'est pas référencé.
Vous devez ajouter une référence à
'assembly 'DevExpress.Data'."

J'ai bien la reference souhaites dans LE projet qui
utilise cette DLL externe mais voila, monsieur veut que
j'ajoute cette reference dans les projets qui utilisent


ma
DLL a moi sinon il compile pas.

Kekun peut m'expliquer??


Je precise que pour l'instant, mes references se font
entre les projets.



.