C# Microsoft.Azure.Devices.Device和Microsoft.Azure.Devices.Shared.Twin之间有什么区别?

C# Microsoft.Azure.Devices.Device和Microsoft.Azure.Devices.Shared.Twin之间有什么区别?,c#,azure,azure-iot-hub,azure-iot-sdk,C#,Azure,Azure Iot Hub,Azure Iot Sdk,假设我想使用Microsoft.Azure.Devices package/SDK加载设备信息,我称之为: RegistryManager regManager = RegistryManager.CreateFromConnectionString(connectionString); Device device = await regManager.GetDeviceAsync("Device_1"); // OR Twin twin = (await regManag

假设我想使用Microsoft.Azure.Devices package/SDK加载设备信息,我称之为:

RegistryManager regManager = RegistryManager.CreateFromConnectionString(connectionString);

Device device = await regManager.GetDeviceAsync("Device_1");
// OR
Twin twin = (await regManager.CreateQuery("SELECT * FROM devices WHERE deviceId = 'Device_1'")
            .GetNextAsTwinAsync())
            .First();
Device
Twin
似乎共享大多数属性
Twin
更通用,可用于查询模块,并可用于读取标签、所需/报告的属性。但除此之外,他们似乎有或多或少相同的信息,除非我遗漏了什么


所以我只是想知道,这两者有什么潜在的区别,或者说基本上是一样的吗?

尽管它们有一些共同的属性,但它们并不相同

“设备”是一种简单类型,可用于所有集线器SKU(基本、标准和免费)。它报告有关设备状态和标识的属性

“Twin”是一种公开device Twin强大概念的类型,它使设备能够报告特定于应用程序的状态,并使后端将设置应用于设备。它通过IoTHub为每个设备维护和同步的JSON文档来实现。此功能仅在标准和免费SKU中可用(在basic中不可用)

请在此处阅读更多信息:

基本上,Twins仅在标准及以上级别中提供。对不起,迟了答复。