之前,我去我也去通過這個 InternalsVisibleTo attribute ain’t workin'!InternalsVisibleTo屬性不工作
因此標題
好了,所以我有使用類似下面的我的項目的工作版本。
[assembly: InternalsVisibleTo("Stuff.Test.Support, PublicKey="0024000004800000940000000302000000240000525341310004000001000100d158cd56401c3d90b52ca1a5f273d608c3ce12aaa21385b0f4ad7dc1b747e45ee1f1771c104c52cb4da1b587ae38b6d36fa1d8e8f14003c42f700bc62ef2ec04b231c5d930e4bc3691aa1ef7b6713926316d4be1165ede086e94190b44edd4ad0d024230ae6eb9deb728b00d71d1d468b20a9bb78f242bd6c41e640c2e5c0cd5")]
在Properties/AssemblyInfo.cs文件中包含我想要訪問的內部東西。 在檢查它在工作之前。但在Team Foundation上合併後,IDK WTF是錯誤的,但它像我的AssemblyInfo.cs沒有看到該屬性,但我證實文件中沒有任何更改,但仍然出現"innaccessable due to its protection level."
錯誤。 (伽馬輻射?黑子?小邪惡的侏儒是訓練蟲子tweek工作代碼爲不工作密碼笑)
我已經嘗試過使用反射添加單個實例...
Assembly Core = Assembly.LoadFile("C:\Stuff.Internal.Core\bin\Debug\Stuff.Internal.Core.dll");
Object AssmWithIdentifier = Core.CreateInstance("AssemblyWithIdentifer", false);
當我嘗試這我得到'Stuff.Internal.AssemblyWithIdentifer' is inaccessible due to protection level.
否則,如果我註釋掉任何與內部的東西有關,我的項目編譯就好了。
我雙重檢查我的「公鑰」與紅蓋茨反射
和我一直在使用privateObjects到可能的接入方式這種方式但無論我如何努力,我不能什麼實例化內部也試過。
我也嘗試過簡單地添加一個新的項目,編譯它的任何引用和是的,實際上工作,但之後,我試圖創建一個新的項目,並添加「Stuff.Test.Support」項目中的所有東西,等,並添加到AssemblyInfo.cs中,在中,我希望訪問項目,但是,一旦我嘗試編譯我得到同樣的錯誤"innaccessable due to its protection level."
編輯: 我沒忘記提到我使用全局管理程序集的sharedAssembly.cs,並具有幾個屬性,這些屬性的設置方式與本示例assembly: InternalsVisibleTo
屬性在本問題開始時顯示的屬性類似。 我也使用強命名程序集,如果這是我的例子沒有突出的東西。
嘿,也許你應該從該項目中刪除任何工作流定義!試試看。 – Will 2010-08-18 15:41:50
工作的OMG。也許你應該把它作爲答案,這樣你才能真正獲得一些信譽。 – Terrance 2010-08-18 15:58:12