Asp.net core 在配置要在使用者中交付的端点时添加元数据
因此,当我配置端点并设置Asp.net core 在配置要在使用者中交付的端点时添加元数据,asp.net-core,masstransit,Asp.net Core,Masstransit,因此,当我配置端点并设置ep.Consumer(context)时,我是否能够向每次调用时出现在consumercontext中的使用者添加一些内容 例如,类似这样的事情: MyMetaData metadata = new MyMetaData() { foo: "Bar" } ep.Consumer<MyConsumer>(context, c => c.somehowincludemetadata(metadata));
ep.Consumer(context)
时,我是否能够向每次调用时出现在consumercontext中的使用者添加一些内容
例如,类似这样的事情:
MyMetaData metadata = new MyMetaData() { foo: "Bar" }
ep.Consumer<MyConsumer>(context, c => c.somehowincludemetadata(metadata));
MyMetaData metadata=newmymetadata(){foo:“Bar”}
消费者(上下文,c=>c.somehowincludemetadata(元数据));
然后在消费者中:
public Task Consume(ConsumeContext<Message> context)
{
var metadata = (MyMetaData)context.heresyourmetadata();
}
公共任务消费(消费上下文)
{
var metadata=(MyMetaData)context.heresyourmetadata();
}
显然,psudeo代码——但我所追求的本质上是一种方法,通过这种方法,我可以将上下文(如客户名称、计算机名称)添加到上下文中,以便在处理过程中检索
这完全是在消费者方面,出版商不会知道需要包括哪些数据
非常感谢。元数据通常必须来自某个地方,可以作为依赖项注入消费者。另一种选择是,如果它基于消息或消息头中的数据,则使用中间件,例如可以将有效负载添加到
ConsumeContext
。此选项可以设置容器中范围内的共享上下文对象的属性,或者如上所述,添加有效负载
另一种选择是以某种方式添加一个在使用者之前调用的异步方法,如下所示
ep.ConfigureConsumer<MyConsumer>(context,
x => x.UseExecute(context => context.Consumer.Property = Value)));
ep.ConfigureConsumer(上下文、,
x=>x.UseExecute(context=>context.Consumer.Property=Value));
或者,您也可以添加有效负载:
ep.ConfigureConsumer<MyConsumer>(context,
x => x.UseExecute(context =>
context.GetOrAddPayload(() => new MyPayload())));
ep.ConfigureConsumer(上下文、,
x=>x.UseExecute(上下文=>
GetOrAddPayload(()=>newmypayload());