c# - 错误的重载构造函数

标签 c# azure

我正在使用来自 Azure 存储 SDK 的类调用 CloudQueueMessage,它具有以下两个构造函数:

public CloudQueueMessage(byte[] content);
public CloudQueueMessage(string content);

我有一些二进制数据要传递给此类,因此我想使用接受byte[] 的构造函数。这是我正在尝试做的一个人为的示例:

byte[] data = ... binary data goes here ...;
var cloudMessage = new CloudQueueMessage(data);

令人惊讶的是,我在 Visual Studio 中收到以下编译器错误:

CS1503 Argument 1: cannot convert from 'byte[]' to 'string'

就好像编译器正在尝试使用接受字符串的重载,当然无法将我的字节数组转换为字符串。

请注意,我不想将字节数组转换为字符串,我只是需要帮助找出编译器不使用适当的构造函数的原因。

如果它很重要:我使用的是 Azure 存储 nuget 包的版本 8.1.1。

更新: 以下是我在 Visual Studio 中按 F12 时看到的内容(请注意 byte[] 构造函数突出显示): f12 from Visual Studio

最佳答案

您可以深入研究构造函数的定义并查看它是从哪里引用的吗?在我看来,好像某个地方存在版本冲突。

在根应用的 bin 文件夹中的 Microsoft.WindowsAzure.Storage.dll 上使用 ILDASM,导航到 CloudQueueMessage 类,看看是否可以找到相同的构造函数。您的应用程序似乎在运行时以某种方式使用早期版本。

您是否也清除了所有 obj 和 bin 文件夹以及 packages 文件夹?

关于c# - 错误的重载构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42543836/

相关文章:

c# - Discord Bot (C#) 加入语音 channel 时遇到问题

c# - 跨方法边界的 LINQ to SQL 规则

c# - .Net Maui 图像 BaseSize 混淆

c# - 实现 Azure Table 的 ITableEntity 接口(interface)以支持嵌套对象和自定义属性类型

sql-server - 如何查询 Sql azure 联合表

c# - Azure AD B2C - IDX20803 : Unable to obtain configuration from: 'System.String' .(.Net 5 Web API + Angular )

c# - 甚至不知道如何开始解决这个问题

C#:结构构造函数性能

azure - AZ复制开发到生产

azure - 将 KeyVault 权限设置为不同租户中的 AAD 应用程序在 PowerShell 中有效,但在 ARM 模板中失败