如果他们可以访问整个DLL,我怎么能阻止第三方调用未经授权的方法(我不关心他们看到代码,只是执行它)?
这必须与.net紧凑框架兼容,所以不幸的是使用StrongnameIDentityPermission属性是不可能的.
@H_301_7@解决方法 我认为你应该发布两个Facade实现,一个用于暴露所有方法的“内部”消费者,另一个暴露所有方法的外部实现.您可以通过拥有两个单独的构建过程来实现此目的,同时只维护一个代码库.我们想到的一种技术是使用 compiler directives从外部构建中排除方法,或者如果其他公共方法需要,则将其标记为内部方法.如果您运送带有内部修饰符的敏感方法,您可能还需要实现模糊处理.编辑
也许它会更清晰,而不是围绕每个方法使用部分类的指令,为敏感方法定义一个部分类,并将整个类实现放在一个指令中.
public partial class MyClass { public voID NonSensitive(){} } #if INTERNAL_BUILD public partial class MyClass { public voID Sensitive(){} } #endif
您可以将此部分类放在相同或单独的文件中,这可能是一个很好的分离级别,因为您可以预先添加文件名x_Sensitive.cs或类似文件.
总结以上是内存溢出为你收集整理的c# – 如何阻止第三方调用某些方法?全部内容,希望文章能够帮你解决c# – 如何阻止第三方调用某些方法?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)