Prima di andare avanti sono andato attraverso questo InternalsVisibleTo attribute ain’t workin'!InternalsVisibleTo attributo non funziona
Da qui il titolo
Va bene così ho avuto una versione funzionante del mio progetto che stava usando qualcosa di simile alla seguente.
[assembly: InternalsVisibleTo("Stuff.Test.Support, PublicKey="0024000004800000940000000302000000240000525341310004000001000100d158cd56401c3d90b52ca1a5f273d608c3ce12aaa21385b0f4ad7dc1b747e45ee1f1771c104c52cb4da1b587ae38b6d36fa1d8e8f14003c42f700bc62ef2ec04b231c5d930e4bc3691aa1ef7b6713926316d4be1165ede086e94190b44edd4ad0d024230ae6eb9deb728b00d71d1d468b20a9bb78f242bd6c41e640c2e5c0cd5")]
Nel file Properties/AssemblyInfo.cs con le informazioni interne a cui desidero accedere. Prima di verificarlo, funzionava. ma dopo averlo fuso su Team Foundation IDK WTF è sbagliato ma è come il mio AssemblyInfo.cs non vede l'attributo ma ho verificato che nulla è cambiato nel file, ma ottengo comunque l'errore "innaccessable due to its protection level."
. (Gama radiazioni? Sunspot? I piccoli gnomi malvagi che si allenano i bug a tweek codice funzionante in codice non funziona lol)
Ho provato semplicemente aggiungendo le singole istanze utilizzando la riflessione ...
Assembly Core = Assembly.LoadFile("C:\Stuff.Internal.Core\bin\Debug\Stuff.Internal.Core.dll");
Object AssmWithIdentifier = Core.CreateInstance("AssemblyWithIdentifer", false);
Quando tento questo ottengo 'Stuff.Internal.AssemblyWithIdentifer' is inaccessible due to protection level.
In caso contrario, se commento qualcosa che ha a che fare con le cose interne, il mio progetto viene compilato correttamente.
Ho ricontrollato la mia "PublicKey" con la Red Gates riflettore
e ho anche provato ad utilizzare privateObjects per, eventualmente, i metodi di accesso che modo, ma non importa quanto mi sforzi non riesco a un'istanza di nulla interno.
Ho anche provato semplicemente ad aggiungere un nuovo progetto, compilando qualsiasi riferimento e sì che ha funzionato, ma dopo di ciò ho tentato di creare un nuovo progetto e aggiungere tutte le cose nel progetto "Stuff.Test.Support" per includere riferimenti e simili, e aggiungere che alle AssemblyInfo.cs che nel progetto che voglio accedere ma, una volta che tento di compilare ottengo lo stesso errore "innaccessable due to its protection level."
Edit: ho dimenticato di menzionare sono utilizzando un SharedAssembly.cs che gestisce globalmente gli assembly e ha diversi attributi impostati in modo simile all'attributo assembly: InternalsVisibleTo
di esempio che ho mostrato all'inizio di questa domanda . Sto anche usando gli assembly Strong Named se questo non è reso evidente dal mio esempio.
Ehi, forse dovresti rimuovere qualsiasi definizione del flusso di lavoro da quel progetto! Provalo. – Will
OMG che funziona. Forse dovresti metterlo giù come risposta in modo che tu possa ottenere qualche credito per questo. – Terrance