从GetHostEvidence()获取null

时间:2011-12-01 23:01:32

标签: c#

我正在尝试按http://msdn.microsoft.com/en-us/library/bb763046.aspx创建一个沙箱来运行不受信任的代码。

当我在Sandboxer类中执行此操作时:

StrongName fullTrustAssembly = typeof(Sandboxer).Assembly.Evidence.GetHostEvidence<StrongName>();

我将返回null。为什么?我该如何解决?

2 个答案:

答案 0 :(得分:3)

您必须在申请表上签字。最简单的方法是:

  1. 右键点击解决方案资源管理器中的项目,然后选择属性
  2. 转到签名标签
  3. 选中签署程序集
  4. 从下拉框中选择&lt; New ...&gt;
  5. 密钥文件名
  6. 中键入名称
  7. 密码是可选的,因此您可以取消选中使用密码保护我的密钥文件
  8. 点击确定
  9. 再次运行在沙盒中运行部分受信任的代码示例。它应该工作。

答案 1 :(得分:2)

根据您链接的页面,GetHostEvidence<T>()的所有调用都以StrongName作为类型参数提供。如果程序集没有强名称(并非全部都是),则返回null。