Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 错误的重载构造函数_C#_Azure - Fatal编程技术网

C# 错误的重载构造函数

C# 错误的重载构造函数,c#,azure,C#,Azure,我正在使用Azure Storage SDK中的类调用CloudQueueMessage,该类调用具有以下两个构造函数: public CloudQueueMessage(byte[] content); public CloudQueueMessage(string content); 我有一些二进制数据要传递给这个类,因此我想使用接受byte[]的构造函数。下面是我试图做的一个人为的例子: byte[] data = ... binary data goes here ...; var c

我正在使用Azure Storage 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参数1:无法从“字节[]”转换为“字符串”

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

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

如果这很重要:我使用的是Azure storage nuget软件包的8.1.1版

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

你能深入到构造函数的定义中,看看它是从哪里引用的吗?在我看来,似乎在某个地方存在版本冲突

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


你也清除了所有的obj和bin文件夹以及packages文件夹了吗?

我终于发现,
public CloudQueueMessage(byte[]content)
只在.NET 4.x中可用,而在.NET Core中不可用(我想知道为什么在.NET Core中删除了这个重载构造函数)

因此,我在.NET Core中使用以下变通方法:


var cloudMessage=newcloudqueuemessage(string.Empty);
cloudMessage.SetMessageContent(数据);

不应该这样做。如果将
数据显式强制转换为字节数组(…
新的CloudQueueMessage((字节[])数据)
),会发生什么情况?我得到了完全相同的错误,信不信由你!我甚至尝试了
var cloudMessage=newcloudqueuemessage((byte[])null)但是当你说“向下钻取”时,我得到了同样的编译错误,你的意思是看源代码吗?他们的源代码在Github上,所以我很乐意查找,但我不确定我们要查找的是什么。编译的源代码F12,转到定义。然后查看引用的程序集是否包含正确的构造函数重载。我用一个屏幕截图更新了我的原始问题,演示了我按F12键时看到的内容