我是c#的新手,我使用了一些代码引用。我添加了一些使用Microsoft.Azure.Devices.Client的方法,而有些方法使用Microsoft.Azure.Devices。现在消息类不明确的引用,我需要这两个使用语句。我现在能做什么?
错误消息是:"' message‘是'Microsoft.Azure.Devices.Client.Message’和‘Microsoft.Azure.Devices.Message’之间的模糊引用。“
守则是:
using System;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Azure.Devices.Client;
using Microsoft.Azure.Devices;
using Microsoft.Azure.Devices.Shared;
using Microsoft.Azure.Devices.Provisioning.Client;
using Microsoft.Azure.Devices.Common.Exceptions;
using Microsoft.Azure.Devices.Provisioning.Client.Transport;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;使用消息类如下所示:
var message = new Message(Encoding.ASCII.GetBytes(messageString));我试过使用Client.Message,但它不起作用。我使用python,并且是c#的新手,不知道它是如何工作的。
有人能详细解释一下解决方案吗?
发布于 2021-06-25 06:41:26
“消息”是“Microsoft.Azure.Devices.Client.Message”和“Microsoft.Azure.Devices.Message”之间的模糊引用。
这意味着Microsoft.Azure.Devices.Client和Microsoft.Azure.Devices都有一个名为Message的类;您已经导入了两个名称空间,因此C#不再确定您在说Message时的意思
要么删除其中一个名称空间,要么通过在名称之前添加完整的命名空间来完全限定消息,这取决于您打算使用的消息类(我也说不出来,因为它们都有接受字节的构造函数)。
var cmessage = new Microsoft.Azure.Devices.Client.Message(...);
var dmessage = new Microsoft.Azure.Devices.Message(...);如果您经常输入它们中的任何一个,您可以为其中一个或另一个使用别名(如果您停止导入一个名称空间,因为它只需要消息类),或者两者兼而有之(如果您继续导入两个名称空间):
using ClientMessage = Microsoft.Azure.Devices.Client.Message;
using DeviceMessage = Microsoft.Azure.Devices.Message;然后你可以说:
var cmessage = new ClientMessage(...);
var dmessage = new DeviceMessage(...);https://stackoverflow.com/questions/68125675
复制相似问题