Freigeben über


BasicDigitalTwin Klasse

Definition

Eine optionale Hilfsklasse zum Deserialisieren eines digitalen Zwillings.

[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
Vererbung
BasicDigitalTwin
Attribute

Beispiele

Hier sehen Sie ein Beispiel für die Verwendung der BasicDigitalTwin-Hilfsklasse zum Serialisieren und Erstellen eines digitalen Zwillings.

// 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}'.");

Hier sehen Sie ein Beispiel für die Verwendung der BasicDigitalTwin-Hilfsklasse zum Abrufen und Deserialisieren eines digitalen Zwillings.

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}");

Hinweise

Diese Hilfsklasse funktioniert nur mit System.Text.Json. Wenn sie mit dem ObjectSerializer- Parameter DigitalTwinsClientOptions verwendet wird, funktioniert es nur mit dem Standardwert (JsonObjectSerializer).

Weitere Beispiele finden Sie in unseren Repositorybeispielen.

Konstruktoren

BasicDigitalTwin()

Eine optionale Hilfsklasse zum Deserialisieren eines digitalen Zwillings.

Eigenschaften

Contents

Dieses Feld enthält Eigenschaften und Komponenten, die im Inhaltsabschnitt der DTDL-Definition des Zwillings definiert sind.

ETag

Eine Zeichenfolge, die ein schwaches ETag für die Entität darstellt, für die diese Anforderung gemäß RFC7232 einen Vorgang ausführt.

Id

Die eindeutige ID des digitalen Zwillings in einem digitalen Zwilling instance. Dieses Feld ist auf jedem digitalen Zwilling vorhanden.

LastUpdatedOn

Das Datum und die Uhrzeit der letzten Aktualisierung des Zwillings.

Metadata

Informationen zum Modell, dem ein digitaler Zwilling entspricht. Dieses Feld ist auf jedem digitalen Zwilling vorhanden.

Gilt für: