2017-04-15 36 views
0

我使用插件體系結構創建應用程序。加載外部DLL文件,我使用MEF框架。所有這些外部DLL運行在不同的域中。我想允許創建模塊的人定義PermissionSets模塊將需要執行。但是,我有問題,與加載此類庫becouse container.ComposeParts(this);拋出這樣的例外:安全透明方法異常的嘗試

Attempt by security transparent method 'System.ComponentModel.Composition.ReflectionModel.ReflectionComposablePart.Crea 
teInstance(System.Reflection.ConstructorInfo, System.Object[])' to access 
security critical method 
'Sth.Plugins.Dummy.DummyConfigurer..ctor()' failed. 

Assembly 'System.ComponentModel.Composition, Version=4.0.0.0, 
Culture=neutral, PublicKeyToken=b77a5c561934e089' is marked with the 
AllowPartiallyTrustedCallersAttribute, and uses the level 2 security 
transparency model. Level 2 transparency causes all methods in 
AllowPartiallyTrustedCallers assemblies to become security transparent by 
default, which may be the cause of this exception. 

目前,我使用這樣的權限:

var permissions = new PermissionSet(PermissionState.None); 
permissions.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution | SecurityPermissionFlag.ControlThread)); 
permissions.AddPermission(new FileIOPermission(FileIOPermissionAccess.Read | FileIOPermissionAccess.PathDiscovery, _codeStorage.RuntimeFolder)); 

我在想,當我標誌着加載的類DLL作爲SecuritySafeCritical它會工作,但我錯了。

我該如何讓它工作?

回答

相關問題