我有一个带有部分方法的生成代码。
I have a generated code with partial method
{
...
partial void InterceptOperationCall(IOperationContext context);
...
async Task SomeMethod()
{
InterceptOperationCall(cntx);
await LongOperation(cntx);
}
}
而且手写部分
{
partial void InterceptOperationCall(IOperationContext context)
{
}
}
我需要在InterceptOperationCall
内进行异步调用,有没有人知道绕过部分方法限制的方法?
换句话说: 我想要异步地执行InterceptOperationCall并在长时间操作之前保证,同时我还想选择在另一个文件中声明此方法的主体。
更新作为解决方法,我选择:
- 不使用生成的部分方法存根,并使用动态代理(
Castle.DynamicProxy
)进行包装,并使用(Nito.AsyncEx
)中的AsyncInterceptorBase
进行拦截 - 另一种选择是改写代码生成器
无论如何,我仍在寻找更好的解决方案,如果有人知道提供将异步调用与某些异步逻辑包装起来的其他方法,请帮助我。
void
方法,因此我需要澄清。 - Nkosi