C# 扩展方法在.NETCore2.0中的使用?

C# 扩展方法在.NETCore2.0中的使用?,c#,.net,azure,asp.net-core-2.0,C#,.net,Azure,Asp.net Core 2.0,我正在尝试使用Microsoft.Azure.Management.ComputeUsage属性列出Azure中的所有资源使用情况 我专门使用Usage.ListAsync()来实现这一点。根据该理论,这是一种扩展方法 我在使用以下命令创建ComputeManagementClient实例后调用扩展方法: public async Task<IComputeUsage> GetResourceUsage(int customerId) { var az

我正在尝试使用Microsoft.Azure.Management.Compute
Usage
属性列出Azure中的所有资源使用情况

我专门使用
Usage.ListAsync()
来实现这一点。根据该理论,这是一种扩展方法

我在使用以下命令创建ComputeManagementClient实例后调用扩展方法:

    public async Task<IComputeUsage> GetResourceUsage(int customerId)
    {
        var azureClient = _dbContext.CreateAzureComputeClient(customerId);

        var usageReport = await azureClient.Usage.ListAsync();
    }

但是,VS2017没有指明名称空间的用法(灰色,而不是黑色)

您调用的
用法.ListAsync()
方法不正确-看起来需要字符串参数:

ListAsync(IUsageOperations、String、CancellationToken)

得到 指定的位置,当前计算资源使用情况信息为 以及订阅下计算资源的限制

事实上,在代码中,它提到您需要一个位置:

因此,请将您的代码更新为:

var usageReport = await azureClient.Usage.ListAsync("[resourceId('Microsoft.Storage/storageAccounts','examplestorage')]");

要使用扩展方法,您需要命名空间:
使用Microsoft.Azure.Management.Compute
。除此之外,他们的文档中没有无参数的
ListAsync
。@CodingYoshi这是我第一次想到的,但我在代码中使用了这个名称空间。是的,很抱歉我正在更新我自己的答案。方法扩展错误似乎是一种误导,它确实需要一个位置!安装名称空间后输入一个位置可以解决问题。
var usageReport = await azureClient.Usage.ListAsync("[resourceId('Microsoft.Storage/storageAccounts','examplestorage')]");