Share via


BasicDigitalTwin Classe

Definição

Uma classe auxiliar opcional para desserializar um gêmeo 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
Herança
BasicDigitalTwin
Atributos

Exemplos

Aqui está um exemplo de como usar a classe auxiliar BasicDigitalTwin para serializar e criar um gêmeo 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}'.");

Aqui está um exemplo de como usar a classe auxiliar BasicDigitalTwin para obter e desserializar um gêmeo 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}");

Comentários

Essa classe auxiliar só funcionará com System.Text.Json. Quando usado com o ObjectSerializerparâmetro DigitalTwinsClientOptions , ele só funcionará com o padrão (JsonObjectSerializer).

Para obter mais exemplos, confira nossos exemplos de repositório.

Construtores

BasicDigitalTwin()

Uma classe auxiliar opcional para desserializar um gêmeo digital.

Propriedades

Contents

Esse campo conterá propriedades e componentes conforme definido na seção de conteúdo da definição DTDL do gêmeo.

ETag

Uma cadeia de caracteres que representa uma ETag fraca para a entidade na qual essa solicitação executa uma operação, de acordo com RFC7232.

Id

A ID exclusiva do gêmeo digital em uma instância de gêmeos digitais. Esse campo está presente em todos os gêmeos digitais.

LastUpdatedOn

A data e a hora em que o gêmeo foi atualizado pela última vez.

Metadata

Informações sobre o modelo com o qual um gêmeo digital está em conformidade. Esse campo está presente em todos os gêmeos digitais.

Aplica-se a