小编Ana*_*liy的帖子

拦截异步方法,通过DynamicProxy返回通用Task <>

我的问题与这篇文章有关拦截使用DynamicProxy调用异步方法

我想实现拦截器,它使用返回TaskTask<T>结果的异步方法.

我使用下一个代码返回ContinueWith结果(以便在拦截器完成工作时调用方法等待)

var task = invocation.ReturnValue as Task;
invocation.ReturnValue = task.ContinueWith(c => 
      { code that should execute after method finish });
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常的Task结果,但在的情况下,Task<T>结果ContinueWith将改变返回类型Task<T>Task.我需要调用返回的重载方法ContinueWith Task<T>,但为此我需要转换invocation.ReturnValueTask<T>

我没有找到以任何方式动态投射它的方法.有谁知道如何制作它?

我也尝试通过反射调用此方法,但参数是labmda函数,不能直接传递.

c# generics castle-dynamicproxy async-await

26
推荐指数
3
解决办法
6025
查看次数

在TDD中创建测试数据的最佳位置在哪里?

我使用NUnit集成测试.我正在尝试测试以确保用户无法使用现有电子邮件创建帐户.(test@example.com)

我需要在数据库中有测试数据(使用test@example.com电子邮件帐户).

我可以在测试函数或sql脚本中创建此帐户(并在集成测试之前运行它).

创建此测试数据的最佳位置在哪里?

c# nunit unit-testing

4
推荐指数
1
解决办法
308
查看次数