6

ですから、ここで私ができるようにしたいことがあります。

var a = Item.CatchLog().Where(x=>x.Property=="value").Take(10);

また

var a = Item.CatchLog().FirstOrDefault(x=>x.Property=="value");

また

var a = Item.CatchLog().Any(x=>x.Property=="value");

CatchLog()基本的に、クエリの実行を基本的にtry catchでラップし、Debug.WriteLine()次にExceptionそれをラップしたいと思いますthrow

このようなものをどのように実装できるかについてのアイデアはありますか?

4

1 に答える 1

8

次のように、ステートメントを書き直す必要があります。

var a = Item.CatchLog(c => c.Where(x => x.Property=="value").Take(10));

それを許可すると、次のように書くことができます。

public static U CatchLog<T,U>(this IEnumerable<T> collection, Func<IEnumerable<T>,U> method)
{
    try
    {
        return method(collection);
    }
    catch(Exception e)
    {
         Debug.WriteLine(e.Message);
         throw;
    }
}
于 2012-11-07T22:23:23.487 に答える