我还没有找到使activitySource.StartActivity
返回非空活动的方法,这与DiagnosticSource.StartActivity
的行为不同。这是预期的吗?我是否遗漏了一些明显的内容?
我可以看到文档中写道: "创建的活动对象如果有活动侦听器则返回该对象,否则返回null。" 还是以下测试失败,初始化ActivityListener
的正确方式是什么? 我正在使用的程序包是"System.Diagnostics.DiagnosticSource" Version="5.0.0"
。
[TestMethod]
public void Start_Not_Null_When_ActivityListener_Added_And_ShouldListenTo_Explicitly_Defined_Activity()
{
var activitySource = new ActivitySource("ActivitySourceName");
var activityListener = new ActivityListener
{
ShouldListenTo = s => true
};
ActivitySource.AddActivityListener(activityListener);
using var activity = activitySource.StartActivity($"MethodType:/Path");
Assert.IsNotNull(activity);
}
SetSampler(new AlwaysOnSampler())
对我有用。不过,我认为@MaGu的答案是更长期的解决方案。无论如何,我对这个答案点赞。 - Kimutai