1

Asmx Web サービスを強化するために使用されていた古い Dll に最新の Wcf インターフェイスをラップするプロジェクトで、コードの重複を削減しようとしています。

4 つの型 (入力および出力型の古いバージョンと新しいバージョン)、入力ドキュメント、および古い dll のメソッドを指す Func を取る汎用ヘルパー メソッドを作成しようとしています。

private static WcfOutType WrapCallAroundOldBl<WcfOutType, WcfInType, LinqOutType, LinqInType>(WcfInType input, Func<LinqInType, LinqOutType> method)

私はこのようなことができると思った:

        var output = WrapCallAroundOldBl<
            WcfOutputTypeName, 
            WcfINputTypeName, 
            LinqToXsdOutputTypeName,
            LinqToXsdInputTypeName>(input, Our.Old.Dll.Methods.MethodName);
        return output;

しかし、私は得る:

cannot convert from 'method group' to 'System.Func<OutputTypeName, InputTypeName>'

これは機能します:

        var output = WrapCallAroundOldBl<
            WcfOutputTypeName, 
            WcfINputTypeName, 
            LinqToXsdOutputTypeName,
            LinqToXsdInputTypeName>(input, i => Our.Old.Dll.Methods.MethodName(i));
        return output;

しかし、とにかくこれらの「メソッドグループ」を直接 Func に変換する方法があるのではないかと考えていました。どういうわけかデリゲートを抽出するだけです。

4

0 に答える 0