【发布时间】:2013-02-24 13:00:01
【问题描述】:
我想用这里找到的一段简单代码进行实验:
http://msdn.microsoft.com/en-au/library/ff664617%28v=pandp.50%29.aspx
但我无法编译它,我一定是做错了什么。在页面的大约三分之一处,它给出了这样的代码示例:
'使用 exManager.Process(Function() 方法名(param1, param2), _ “例外政策名称”)
但是如果我输入以下代码:
Dim exManager As ExceptionManager
exManager = EnterpriseLibraryContainer.Current.GetInstance(Of ExceptionManager)()
exManager.Process(Function() TestSub(), "Exception Policy Name")
我在第三行收到一条错误消息:
重载解析失败,因为没有可访问的“进程”可以 用这些参数调用: '公共可重写函数进程(TResult)(操作作为 System.Func(TResult),policyName 作为字符串)作为 TResult':不能 从共享方法中引用类的实例成员或 没有类的显式实例的共享成员初始化器。
'Public Overridable Function Process(Of TResult)(action As System.Func(Of TResult), policyName As String) As TResult': Data 无法从这些推断类型参数的类型 论据。明确指定数据类型可能会更正此问题 错误。
等等
即使我尝试像这样修改 lambda:
exManager.Process(Function() Dim A As Integer=6, "Exception Policy Name")
我遇到了类似的错误。
任何 cmets 将不胜感激。
更新:
注意我正在为 .NET Framework 4 客户端配置文件进行编译
【问题讨论】:
-
保存进程管理器代码的函数是共享子程序吗?
-
@user1937198 实际上是这样,但是我把它放在一个非共享函数中,它没有任何区别