Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

reflection et typeof

1 réponse
Avatar
Boblemar
Bonjour,

Je me trouve face à un problème :
Je charge dans mon programme une assembly dynamiquement à l'aide de
Assembly.LoadFrom()

Ensuite, je souhaite tester le type de l'assembly chargée pour savoir
dans quel cas connu je me trouve (je peux charger à cet endroit 2
assemblies particulières : A1 et A2).

Pour ce faire, je testais simplement :
if (objContentManagerAccess.GetType().Equals(typeof(A1)))
...
cela fonctionnait bien depuis 3 mois, mais aujourd'hui, cela ne matche plus.

Après investigations, il s'avère que typeof(A1) retourne un message : A1
existe dans {xxxx-xxxxx-xxxx-xxx} et dans {yyyyy-yyyy-yyy-yyy}

J'ai beau chercher, je ne trouve ces références ni dans le GAC ni dans
la base des registres.
Je ne comprends donc pas où il trouve ces 2 références.

J'ai trouvé une solution qui consiste à tester
if (objContentManagerAccess.GetType().FullName.Equals("A1"))
...
mais cela ne me plait pas vraiment, et puis j'aimerais savoir comment
déréférencer ces assemblys.

Quelle est la bonne méthode pour tester le type d'une classe chargée
dynamiquement ?

Merci

Bob

1 réponse

Avatar
Paul Bacelar
Pourquoi ne pas utiliser les customs attributs sur les assemblies ?
--
Paul Bacelar
MVP VC++

"Boblemar" wrote in message
news:
Bonjour,

Je me trouve face à un problème :
Je charge dans mon programme une assembly dynamiquement à l'aide de
Assembly.LoadFrom()

Ensuite, je souhaite tester le type de l'assembly chargée pour savoir dans
quel cas connu je me trouve (je peux charger à cet endroit 2 assemblies
particulières : A1 et A2).

Pour ce faire, je testais simplement :
if (objContentManagerAccess.GetType().Equals(typeof(A1)))
...
cela fonctionnait bien depuis 3 mois, mais aujourd'hui, cela ne matche
plus.

Après investigations, il s'avère que typeof(A1) retourne un message : A1
existe dans {xxxx-xxxxx-xxxx-xxx} et dans {yyyyy-yyyy-yyy-yyy}

J'ai beau chercher, je ne trouve ces références ni dans le GAC ni dans la
base des registres.
Je ne comprends donc pas où il trouve ces 2 références.

J'ai trouvé une solution qui consiste à tester
if (objContentManagerAccess.GetType().FullName.Equals("A1"))
...
mais cela ne me plait pas vraiment, et puis j'aimerais savoir comment
déréférencer ces assemblys.

Quelle est la bonne méthode pour tester le type d'une classe chargée
dynamiquement ?

Merci

Bob