2011-08-25 95 views
4

我正在研究一个应用程序,该应用程序可以与从外部程序集加载的模块一起工作。这些模块的唯一约束是继承类,以便主机调用它们。InitializeLifetimeService覆盖模式

This 模块类重写InitializeLifetimeService以使模块的透明代理不超时。

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

谢谢。

回答

-1

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

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

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

+1

我理解L2安全性的继承规则,但是当我提到覆盖'InitializeLifetimeService'时,我指的是'MarshalByRef'类的方法,它是.Net框架的一部分。 – alprema