论坛首页 编程语言技术论坛

c#2.0的InternalVisiable

浏览 7024 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-04-09  
[assembly: InternalsVisibleTo("AssemblyName")]
这个东西很好。这样就可以把部分的类向特定的层公开。
比如我的Dac放在一个程序集里面,业务逻辑放在一个程序集里面。
我把Dac的类全部做成Internal,只有业务逻辑层可以访问到,而UI层访问不到。这样防止了跨层的访问。
再比如可以让Test程序集创建Internal的类。这样我们就可以把Test放到一个单独的程序集里面,比较清爽。
   发表时间:2005-04-21  
好东西, 可惜只有2.0里才有, 
另外这种做法也会造成一些安全上的问题,比如, 我放[assembly: InternalsVisibleTo("Unittest")]在程序里, 其他人就会可以写一个同样名字的assembly来crack我的程序, 最好用strong name或只对debug build有用, MS自己的东西要是用这种办法来写unit test, 后果比SQL injection还严重。
0 请登录后投票
   发表时间:2005-04-27  
如果用反射的话,别说Internal,private成员也保不住。如果应用程序的文件让人得到了,安全就已经完蛋了。
0 请登录后投票
   发表时间:2005-04-27  
ReflectionPermissionAttribute 是干嘛用的?
0 请登录后投票
   发表时间:2005-04-29  
如果用reflector,连这些Attribute可以一起反编译出来。当然你可以模糊,可是还可以用代码重构工具把那些abc一个个改成有意义的名字。除非编译成native code,否则一旦得到程序文件,这些安全措施只不过是自我安慰。
0 请登录后投票
   发表时间:2005-06-13  
这个特性不是为了代码安全吧,而应该是楼主你自己说的“清爽”才对啊
0 请登录后投票
   发表时间:2005-10-09  
现在InternalsVisibleTo改成必须用强名称了,好麻烦
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics