我正在使用来自 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。
最佳答案
您可以深入研究构造函数的定义并查看它是从哪里引用的吗?在我看来,好像某个地方存在版本冲突。
在根应用的 bin 文件夹中的 Microsoft.WindowsAzure.Storage.dll
上使用 ILDASM,导航到 CloudQueueMessage
类,看看是否可以找到相同的构造函数。您的应用程序似乎在运行时以某种方式使用早期版本。
您是否也清除了所有 obj 和 bin 文件夹以及 packages 文件夹?
关于c# - 错误的重载构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42543836/