InitializeLifetimeService覆盖模式

时间:2011-08-25 08:03:09

标签: c# .net .net-4.0

我正在开发一个可以处理从外部程序集加载的模块的应用程序。这些模块唯一的限制是从模块类继承,以便主机调用它们。

模块类会覆盖InitializeLifetimeService,以使模块的透明代理不会超时。

现在这是我的问题:在.Net 4.0的代码安全性中,部分信任程序集不允许从安全代码(InitializeLifetimeService是)覆盖方法。由于我的模式看起来很常见,我不明白应用主机模块应该如何与它们通信。

感谢。

1 个答案:

答案 0 :(得分:-1)

也许此链接可以帮助您: http://msdn.microsoft.com/en-us/library/dd233102.aspx#inheritance

我的猜测是,包含您继承的类的模块可能需要使用新的安全属性进行更新。不幸的是,听起来您使用的是非您编写的模块,因此您可能需要与模块的作者或公司进行交流。

来自MSDN “默认情况下,在基类或接口中引入并在安全关键类中重写或实现的虚拟和抽象方法是透明的。必须将它们标识为SecuritySafeCritical或SecurityCritical。”