【发布时间】:2011-02-20 14:55:49
【问题描述】:
是否有任何内置功能可以确定是否从特定程序集调用程序集?
我有程序集A,它引用了程序集B。程序集A 公开 PowerShell cmdlet 并输出在B 中找到的类型。由B 公开的某些方法和属性对程序集A 中的类型感兴趣,但对PowerShell 的消费者或任何试图直接在B 中加载类型并在其中调用方法的人不感兴趣。
我已经研究了InternalsVisibleToAttribute,但由于使用了接口,它需要大量的返工。我正在设计一个共享密钥系统,该系统后来会被混淆,但看起来很笨重。
有什么方法可以确保B 只被A 调用?
【问题讨论】:
-
那么,为什么要强迫人们不要使用他们甚至不感兴趣的东西?
-
而且,如果你想阻止人们做他们真正真正感兴趣的事情,这可能对一个甚至温和的对手都不起作用-- 替换程序集上的签名(使用来自不同密钥的签名)并更改任何硬编码的密钥以匹配......
标签: c# .net powershell assemblies