2017-08-20 75 views
0

我想共享多个功能之间的一些逻辑现在看来是可以实现的部分用湛蓝职能范围内Function Filters然而,在某些情况下,我不想继续执行函数并且能够将结果返回给绑定提供者(与从它自己的函数返回结果相同)。跳过功能调用和自定义功能的过滤器的返回值

看看代码,短路在FunctionInvocationFilterInvoker内调用内部IFunctionInvoker的唯一方法是在自定义调用过滤器中引发异常。这种方法唯一的问题是,异常会冒泡到主机并导致失败/重试等等。

也采取这种方法不允许我设置另一个返回值后绑定提供程序。我确实看到我们可以将其包装在我们自己的IFunctionInvoker中,但我想知道是否有更好的方法来实现这一目标?

Code executing filters

+0

在你的情况下,是有可能写出逻辑控制在Azure的功能invaction的功能呢? (根据参数消息信息来调用对应函数。) –

+0

函数的执行在这里调用 - https://github.com/Azure/azure-webjobs-sdk/blob/3696dd28df66996b1adcc0697f0d0f88f865cb64/src/Microsoft.Azure.WebJobs.Host/执行人/ FunctionExecutor.cs#L569 –

+0

我期待一个'result'(filterContext.Result)对象,我可能回来,就像ActionFilters在MVC –

回答

1

不可能的呢,不过这是后话,我们一定会实现。我们在回购here中追踪此功能。

+0

最终看上去在这个自己,并与勾勒出PR提出的第一个问题:-)谢谢你的回答,虽然忘了问这个 –