你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
BasicDigitalTwin 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
用于反序列化数字孪生的可选帮助程序类。
[System.Text.Json.Serialization.JsonConverter(typeof(Azure.DigitalTwins.Core.BasicDigitalTwinJsonConverter))]
public class BasicDigitalTwin
[<System.Text.Json.Serialization.JsonConverter(typeof(Azure.DigitalTwins.Core.BasicDigitalTwinJsonConverter))>]
type BasicDigitalTwin = class
Public Class BasicDigitalTwin
- 继承
-
BasicDigitalTwin
- 属性
示例
下面是如何使用 BasicDigitalTwin 帮助程序类序列化和创建数字孪生体的示例。
// Create digital twin with component payload using the BasicDigitalTwin serialization helper
var basicTwin = new BasicDigitalTwin
{
Id = basicDtId,
// model Id of digital twin
Metadata =
{
ModelId = modelId,
PropertyMetadata = new Dictionary<string, DigitalTwinPropertyMetadata>
{
{
"Prop2",
new DigitalTwinPropertyMetadata
{
// must always be serialized as ISO 8601
SourceTime = DateTimeOffset.UtcNow,
}
}
},
},
Contents =
{
// digital twin properties
{ "Prop1", "Value1" },
{ "Prop2", 987 },
// component
{
"Component1",
new BasicDigitalTwinComponent
{
// writeable component metadata
Metadata = new Dictionary<string, DigitalTwinPropertyMetadata>
{
{
"ComponentProp2",
new DigitalTwinPropertyMetadata
{
// must always be serialized as ISO 8601
SourceTime = DateTimeOffset.UtcNow,
}
}
},
// component properties
Contents =
{
{ "ComponentProp1", "Component value 1" },
{ "ComponentProp2", 123 },
},
}
},
},
};
Response<BasicDigitalTwin> createDigitalTwinResponse = await client.CreateOrReplaceDigitalTwinAsync(basicDtId, basicTwin);
Console.WriteLine($"Created digital twin '{createDigitalTwinResponse.Value.Id}'.");
下面是如何使用 BasicDigitalTwin 帮助程序类获取和反序列化数字孪生体的示例。
Response<BasicDigitalTwin> getBasicDtResponse = await client.GetDigitalTwinAsync<BasicDigitalTwin>(basicDtId);
BasicDigitalTwin basicDt = getBasicDtResponse.Value;
// Must cast Component1 as a JsonElement and get its raw text in order to deserialize it as a dictionary
string component1RawText = ((JsonElement)basicDt.Contents["Component1"]).GetRawText();
var component1 = JsonSerializer.Deserialize<BasicDigitalTwinComponent>(component1RawText);
Console.WriteLine($"Retrieved and deserialized digital twin {basicDt.Id}:\n\t" +
$"ETag: {basicDt.ETag}\n\t" +
$"ModelId: {basicDt.Metadata.ModelId}\n\t" +
$"LastUpdatedOn: {basicDt.LastUpdatedOn}\n\t" +
$"Prop1: {basicDt.Contents["Prop1"]}, last updated on {basicDt.Metadata.PropertyMetadata["Prop1"].LastUpdatedOn}\n\t" +
$"Prop2: {basicDt.Contents["Prop2"]}, last updated on {basicDt.Metadata.PropertyMetadata["Prop2"].LastUpdatedOn} and sourced at {basicDt.Metadata.PropertyMetadata["Prop2"].SourceTime}\n\t" +
$"Component1.LastUpdatedOn: {component1.LastUpdatedOn}\n\t" +
$"Component1.Prop1: {component1.Contents["ComponentProp1"]}, last updated on: {component1.Metadata["ComponentProp1"].LastUpdatedOn}\n\t" +
$"Component1.Prop2: {component1.Contents["ComponentProp2"]}, last updated on: {component1.Metadata["ComponentProp2"].LastUpdatedOn} and sourced at: {component1.Metadata["ComponentProp2"].SourceTime}");
注解
此帮助程序类仅适用于 System.Text.Json。 与 的 参数DigitalTwinsClientOptions一起使用ObjectSerializer时,只能与默认 (JsonObjectSerializer) 一起使用。
有关更多示例,请参阅 我们的存储库示例。
构造函数
BasicDigitalTwin() |
用于反序列化数字孪生的可选帮助程序类。 |
属性
Contents |
此字段将包含孪生体的 DTDL 定义的 contents 节中定义的属性和组件。 |
ETag |
一个字符串,表示此请求对其执行操作的实体的弱 ETag,根据 RFC7232。 |
Id |
数字孪生实例中数字孪生体的唯一 ID。 此字段存在于每个数字孪生体上。 |
LastUpdatedOn |
上次更新孪生体的日期和时间。 |
Metadata |
有关数字孪生体符合的模型的信息。 此字段存在于每个数字孪生体上。 |