DTDL可写属性-Azure Digital Twin

问题描述

创建了一个测试DTDL模型类,该模型中定义的可写属性之一为false,另一个可写属性为true

Test Model

即使writable属性为false,也可以执行以下代码。如何仅在DTDL中设置可读属性

            BasicDigitalTwin twindata = new BasicDigitalTwin();
            twindata.Id = "123Test";
            twindata.Metadata.ModelId = "dtmi:DigitalTwins:test;2";

            twindata.CustomProperties.Add("testprop1","test1");
            twindata.CustomProperties.Add("testprop2","test2");
            twindata.CustomProperties.Add("testprop3","test3");

            await client.CreateDigitalTwinAsync(twindata.Id,JsonSerializer.Serialize(twindata));

解决方法

可写属性仅在IoT中心的Device Twin中起作用,而在Azure Digital Twins中不起作用。 This document试图对此有所了解,但我能理解其中的困惑。

数字双胞胎定义语言(DTDL)用于描述Azure数字双胞胎(ADT)中的数字双胞胎,还用于描述IoT即插即用的功能模型。尽管可写属性是DTDL语言的一部分,但它在ADT中并未发挥作用。