我可以用类型替换 SLAB 每个事件一个方法吗?

Can I replace SLAB one-method-per-event with types?

Examples for SLAB 看起来像这样:

MyCompanyEventSource.Log.ScalingRequestSubmitted(
    request.RoleName, 
    request.InstanceCount,
    context.RuleName,
    context.CurrentInstanceCount);

我不喜欢每次添加新事件类型时都必须编辑 MyCompanyEventSource。我也不喜欢记录器只能静态使用。我宁愿有这样的东西:

_logger.Log(new ScalingRequestSubmittedEvent(request, context));

我知道我可以自己滚动日志记录,但在我完全解雇 SLAB 之前,我想知道我是否不公平。

没有办法做这样的事情

_logger.Log(new ScalingRequestSubmittedEvent(request, context));

并且您必须随时更改记录器以添加新类型的事件、更改信息级别或关键字。

为 EventSource 编写自己的包装器是实现所需功能的唯一方法。