Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# InitializeLifetimeService覆盖模式_C#_.net_.net 4.0 - Fatal编程技术网

C# InitializeLifetimeService覆盖模式

C# InitializeLifetimeService覆盖模式,c#,.net,.net-4.0,C#,.net,.net 4.0,我正在开发一个应用程序,它可以处理从外部程序集加载的模块。这些模块的唯一约束是从模块类继承,以便主机调用它们 此模块类重写InitializeLifetimeService,以便模块的透明代理不会超时 现在我的问题来了:在.NET4.0的代码安全性中,不允许部分信任程序集从安全代码(InitializeLifetimeService就是这样)重写方法。由于我的模式看起来很普通,我不明白应用程序托管模块应该如何与它们通信 谢谢。也许此链接可以帮助您: 我的猜测是,包含您从中继承的类的模块可能需要

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

模块类重写InitializeLifetimeService,以便模块的透明代理不会超时

现在我的问题来了:在.NET4.0的代码安全性中,不允许部分信任程序集从安全代码(InitializeLifetimeService就是这样)重写方法。由于我的模式看起来很普通,我不明白应用程序托管模块应该如何与它们通信


谢谢。

也许此链接可以帮助您:

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

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

我了解二级安全的继承规则,但是当我提到重写
InitializeLifetimeService
时,我指的是
MarshalByRef
类的方法,它是.Net框架的一部分。