什么是 IBinding 接口中带有两个参数的 BindAsync 方法
What is a BindAsync method with two params in the IBinding interface
在 Azure WebJobs SDK 中,我们有 IBinding
接口。这个接口有一个方法 BindAsync
有两个参数,但我不明白第一个参数是什么 object value
以及什么时候调用这个重载方法。
与 ITriggerBinding
接口相关的相同问题。
我尝试在SDK代码源中寻找答案。我知道 BindingSource
包含一个参数字典,其中键是参数名称,值是将提供给 BindAsync
方法的参数值,但我不明白这些参数是什么以及它们在哪里来自哪里?
更新
IBinding.BindAsync方法ReturnsTask<IValueProvider>
.
IBinding.BindAsync的用法。
示例代码
public async Task BindAsync_String()
{
ParameterInfo parameterInfo = GetType().GetMethod("TestStringFunction").GetParameters()[0];
HttpTriggerAttributeBindingProvider.HttpTriggerBinding binding = new HttpTriggerAttributeBindingProvider.HttpTriggerBinding(new HttpTriggerAttribute(), parameterInfo, false);
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "http://functions/myfunc?code=abc123");
request.Content = new StringContent("This is a test");
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/text");
FunctionBindingContext functionContext = new FunctionBindingContext(Guid.NewGuid(), CancellationToken.None, new TestTraceWriter(TraceLevel.Verbose));
ValueBindingContext context = new ValueBindingContext(functionContext, CancellationToken.None);
ITriggerData triggerData = await binding.BindAsync(request, context);
Assert.Equal(0, triggerData.BindingData.Count);
string result = (string)triggerData.ValueProvider.GetValue();
Assert.Equal("This is a test", result);
}
从示例代码 (HttpTrigger) 中,您会发现 request
、context
。它们是 BindAsync
中的两个参数。你会知道BindAsync
.
的用法
在 Azure WebJobs SDK 中,我们有 IBinding
接口。这个接口有一个方法 BindAsync
有两个参数,但我不明白第一个参数是什么 object value
以及什么时候调用这个重载方法。
与 ITriggerBinding
接口相关的相同问题。
我尝试在SDK代码源中寻找答案。我知道 BindingSource
包含一个参数字典,其中键是参数名称,值是将提供给 BindAsync
方法的参数值,但我不明白这些参数是什么以及它们在哪里来自哪里?
更新
IBinding.BindAsync方法ReturnsTask<IValueProvider>
.
IBinding.BindAsync的用法。
示例代码
public async Task BindAsync_String()
{
ParameterInfo parameterInfo = GetType().GetMethod("TestStringFunction").GetParameters()[0];
HttpTriggerAttributeBindingProvider.HttpTriggerBinding binding = new HttpTriggerAttributeBindingProvider.HttpTriggerBinding(new HttpTriggerAttribute(), parameterInfo, false);
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "http://functions/myfunc?code=abc123");
request.Content = new StringContent("This is a test");
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/text");
FunctionBindingContext functionContext = new FunctionBindingContext(Guid.NewGuid(), CancellationToken.None, new TestTraceWriter(TraceLevel.Verbose));
ValueBindingContext context = new ValueBindingContext(functionContext, CancellationToken.None);
ITriggerData triggerData = await binding.BindAsync(request, context);
Assert.Equal(0, triggerData.BindingData.Count);
string result = (string)triggerData.ValueProvider.GetValue();
Assert.Equal("This is a test", result);
}
从示例代码 (HttpTrigger) 中,您会发现 request
、context
。它们是 BindAsync
中的两个参数。你会知道BindAsync
.