Share via


BasicDigitalTwin Clase

Definición

Una clase auxiliar opcional para deserializar un gemelo digital.

[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
Herencia
BasicDigitalTwin
Atributos

Ejemplos

Este es un ejemplo de cómo usar la clase auxiliar BasicDigitalTwin para serializar y crear un gemelo digital.

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

Este es un ejemplo de cómo usar la clase auxiliar BasicDigitalTwin para obtener y deserializar un gemelo digital.

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

Comentarios

Esta clase auxiliar solo funcionará con System.Text.Json. Cuando se usa con el ObjectSerializerparámetro DigitalTwinsClientOptions , solo funcionará con el valor predeterminado (JsonObjectSerializer).

Para obtener más ejemplos, consulte nuestros ejemplos de repositorio.

Constructores

BasicDigitalTwin()

Una clase auxiliar opcional para deserializar un gemelo digital.

Propiedades

Contents

Este campo contendrá propiedades y componentes, tal como se define en la sección de contenido de la definición DTDL del gemelo.

ETag

Cadena que representa una ETag débil para la entidad con la que esta solicitud realiza una operación, según RFC7232.

Id

Identificador único del gemelo digital en una instancia de gemelos digitales. Este campo está presente en cada gemelo digital.

LastUpdatedOn

Fecha y hora en que se actualizó por última vez el gemelo.

Metadata

Información sobre el modelo al que se ajusta un gemelo digital. Este campo está presente en cada gemelo digital.

Se aplica a