无法通过APM扩展访问TAP中的非静态方法
本文关键字:TAP 静态方法 访问 扩展 APM | 更新日期: 2023-09-27 18:21:07
我是这方面的新手,我正在尝试为我的Socket对象的BeginConnect方法创建一个基于APM的TAP包装器
public static Task ConnectTaskAsync(this Socket socket, EndPoint endpoint)
{
return TaskFactory.FromAsync(socket.BeginConnect, socket.EndConnect, endpoint, null);
}
但是,我在静态上下文中的FromAsync
方法"无法访问非静态方法FromAsync
"上遇到错误。
我的代码应该是什么样子?
正如错误试图告诉您的那样,您需要一个TaskFactory
的实例。
您可以使用默认的singleton实例(Task.Factory
),也可以使用其构造函数创建自己的实例。
您可以在none static
方法中调用static
方法,但不能在静态方法中调用非静态方法。
因此,要么将FromAsync
更改为静态,要么创建一个实例。