InternalsVisibleTo attribut ne fonctionne pas

voix
7

Avant de poursuivre, je ne passe par cet attribut InternalsVisibleTo n'est pas Workin'!

D'où le titre

D'accord, j'avais donc une version de travail de mon projet qui utilisait quelque chose comme ce qui suit.

[assembly: InternalsVisibleTo(Stuff.Test.Support, PublicKey=0024000004800000940000000302000000240000525341310004000001000100d158cd56401c3d90b52ca1a5f273d608c3ce12aaa21385b0f4ad7dc1b747e45ee1f1771c104c52cb4da1b587ae38b6d36fa1d8e8f14003c42f700bc62ef2ec04b231c5d930e4bc3691aa1ef7b6713926316d4be1165ede086e94190b44edd4ad0d024230ae6eb9deb728b00d71d1d468b20a9bb78f242bd6c41e640c2e5c0cd5)]

Dans le fichier Propriétés / AssemblyInfo.cs avec les choses internes que je veux accéder. Avant de vérifier dans cela fonctionnait. mais après la fusion si le Team Foundation IDK WTF ne va pas mais son comme mes AssemblyInfo.cs ne marche pas voir l'attribut mais je vérifié que rien n'a changé dans le dossier mais je reçois l' innaccessable due to its protection level.erreur. (Gama rayonnement? Tache? Les petits nains du mal qui entraînent des bugs à Tweek code de travail dans le code ne fonctionne pas lol)

J'ai essayé simplement d'ajouter les cas individuels en utilisant la réflexion ...

Assembly Core = Assembly.LoadFile(C:\Stuff.Internal.Core\bin\Debug\Stuff.Internal.Core.dll);

Object AssmWithIdentifier = Core.CreateInstance(AssemblyWithIdentifer, false);

Lorsque je tente ce que je reçois 'Stuff.Internal.AssemblyWithIdentifer' is inaccessible due to protection level.

Sinon, si je commente quoi que ce soit ayant à voir avec la substance interne mon projet compile très bien.

Je double vérifié mon « PublicKey » avec Red Gates, réflecteur

et je l'ai également essayé d'utiliser privateObjects pour éventuellement les méthodes d'accès qui manière, mais peu importe comment j'essaie je ne peux pas instancier quoi que ce soit interne.

J'ai aussi essayé simplement d'ajouter un nouveau projet, compilant tout référencement et oui qui a effectivement travaillé, mais après que j'attemped pour créer un nouveau projet et ajouter tous les trucs dans le projet « de Stuff.Test.Support » d'inclure des références et similaires et ajouter que les AssemblyInfo.cs que dans le projet que je souhaite accéder, mais, une fois que je tente de compiler je reçois la même erreur innaccessable due to its protection level.

Edit: Je n'oublie de mentionner que je me sers d' une sharedAssembly.cs qui gère globalement les assemblées et a plusieurs attributs mis en place de façon similaire à l'exemple assembly: InternalsVisibleToattribuons j'ai montré au début de cette question. J'utilise aussi des ensembles forts nommés si c'est quelque chose pas fait important par mon exemple.

Créé 17/08/2010 à 16:41
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
4

Il s'avère que les définitions de flux de travail étaient à l' origine de la différence. Toujours essayer de comprendre pourquoi si .....
Eh bien , si quelqu'un peut fournir un lien vers quelque chose qui explique pourquoi va obtenir une de moi.

Créé 18/08/2010 à 18:04
source utilisateur

voix
2

1) si InternalsVisibleTo est configuré correctement, vous ne devriez pas avoir besoin de réflexion pour les instancier du « ami », il peut simplement utiliser de cteur et autres directement. J'irais cette voie afin que le VS IDE peut vous donner un feedback plus rapide si les internes sont vraiment visibles pour le projet cible.

2) selon le message d'erreur que vous avez plus tard, avez-vous essayé InternalsVisibleTo ( « Stuff.Test.Support »)?

Créé 17/08/2010 à 17:32
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more