在VS2003以前,為了開發良好設計的assembly (say A),經常地使用 internal 的 access modifier,讓不該存取的class 看不到。
但是,因為需要,就是需要讓在不同assembly B 的class 看到,那怎麼辦?
以前,只能將assembly B 的程式移到 A 中。可是又違反的商業邏輯。A 與 B 不應該放在一起的。
無解。
在 .net framework 2.0,有了新方法。
在 assembly A 的AssemblyInfo.cs 中,增加下面這一段
using SRC=System.Runtime.CompilerServices;
[assembly: SRC.InternalsVisibleTo("AssemblyName, PublicKeyToken=1234567890abcdef")]
而 publicKeyToken 可以使用指令 SN.exe -T assbmelyB.dll 取得
沒有留言:
張貼留言