ここにある簡単なコードを試してみたいと思います。
http://msdn.microsoft.com/en-au/library/ff664617%28v=pandp.50%29.aspx
しかし、コンパイルできません。何か間違ったことをしているに違いありません。ページの約 3 分の 1 を下ると、次のようなコード サンプルが表示されます。
'使い方 exManager.Process(Function() メソッド名(param1, param2), _ "例外ポリシー名")
しかし、次のコードを入力すると:
Dim exManager As ExceptionManager
exManager = EnterpriseLibraryContainer.Current.GetInstance(Of ExceptionManager)()
exManager.Process(Function() TestSub(), "Exception Policy Name")
3 行目に次のようなエラーが表示されます。
アクセス可能な 'Process' をこれらの引数で呼び出すことができないため、オーバーロードの解決に失敗しました: 'Public Overridable Function Process(Of TResult)(action As System.Func(Of TResult), policyName As String) As TResult': インスタンス メンバーを参照できませんクラスの明示的なインスタンスなしで、共有メソッドまたは共有メンバー初期化子内からのクラスの。
'Public Overridable Function Process(Of TResult)(action As System.Func(Of TResult), policyName As String) As TResult': 型パラメーターのデータ型は、これらの引数から推測できません。データ型を明示的に指定すると、このエラーが修正される場合があります。
等
次のようにラムダを変更しようとしても:
exManager.Process(Function() Dim A As Integer=6, "Exception Policy Name")
同様のエラーが発生します。
コメントをいただければ幸いです。
アップデート:
注: .NET Framework 4 Client Profile 用にコンパイルしています