我正在尝试编写属性以将安全性应用于方法。东西会看起来像这样:包含自定义属性的DLL保持锁定状态
[CustomAuthorization(SecurityAction.Demand)]
public void DoSomething()
{
//Do Something
}
所以我有我的另一个组件属性:
public sealed class AuthorizationAttribute : CodeAccessSecurityAttribute
{
public override IPermission CreatePermission()
{
if (!/*authorize here*/)
{
return new CustomPermission(PermissionState.Unrestricted);
}
throw new Exception("IdentificationFailure.");
}
}
public AuthorizationAttribute(SecurityAction securityAction)
: base(securityAction) { }
}
到目前为止,它的工作原理。 我运行我的主程序并完成它的工作。
现在我去修改具有该属性的程序集,然后构建它。没问题。
我回到我的主程序尝试构建并在那里失败。它不能复制新建的dll,因为旧的dll仍然被一个进程使用。
有没有人知道这里会发生什么?
你有2把Visual Studio中的窗户打开? – NotMe 2011-02-11 22:29:49
不是。但如果我关闭并重新打开它的作品。 – Burcephal 2011-02-11 22:31:09
但如果我再次返回并修改程序集,则会失败。 – Burcephal 2011-02-11 22:31:31