【发布时间】:2014-01-31 12:01:25
【问题描述】:
试图创建一个委托来访问一个数组,我得到一个 ArgumentException 说该方法无法绑定。
无法绑定到目标方法,因为它的签名或安全透明度与委托类型的不兼容。
重现此的最少代码量如下:
var method = typeof(string[,]).GetMethod("Get");
var func = Delegate.CreateDelegate(typeof(Func<int, int, string>), new string[4,5], method);
虽然 Get 方法默认是不可见的,但第一行确实有效并找到了正确的方法。由于签名匹配,我认为异常与 Get 方法是安全透明的这一事实有关,而 Func 可能不是。如何判断一个委托类型是否安全透明以及如何解决这个问题?
【问题讨论】:
-
这段代码在哪里执行?虚拟主机?还是什么?
-
您好,很抱歉信息不足。我在一个客户端控制台应用程序中执行了这段代码,该应用程序应该完全信任并且仍然得到这个异常。
标签: c# delegates code-access-security