Förstå Digital Twins-modellparsern

DTDL (Digital Twins Definition Language) beskrivs i DTDL-specifikationen. Användare kan använda NuGet-paketet Digital Twins Model Parser för att validera och fråga en modell som definierats i flera filer.

Installera DTDL-modellparsern

Parsern är tillgänglig i NuGet.org med ID: Microsoft.Azure.DigitalTwins.Parser. Om du vill installera parsern använder du valfri kompatibel NuGet-pakethanterare, till exempel den i Visual Studio eller i dotnet CLI.

dotnet add package Microsoft.Azure.DigitalTwins.Parser

Anteckning

I skrivande stund är 3.12.7parsningsversionen .

Använd parsern för att verifiera en modell

En modell kan bestå av ett eller flera gränssnitt som beskrivs i JSON-filer. Du kan använda parsern för att läsa in alla filer i en viss mapp och använda parsern för att verifiera alla filer som en helhet, inklusive eventuella referenser mellan filerna:

  1. Skapa en IEnumerable<string> med en lista över allt modellinnehåll:

    using System.IO;
    
    string folder = @"c:\myModels\";
    string filespec = "*.json";
    
    List<string> modelJson = new List<string>();
    foreach (string filename in Directory.GetFiles(folder, filespec))
    {
        using StreamReader modelReader = new StreamReader(filename);
        modelJson.Add(modelReader.ReadToEnd());
    }
    
  2. Instansiera ModelParser och anropa ParseAsync:

    using Microsoft.Azure.DigitalTwins.Parser;
    
    ModelParser modelParser = new ModelParser();
    IReadOnlyDictionary<Dtmi, DTEntityInfo> parseResult = await modelParser.ParseAsync(modelJson);
    
  3. Sök efter valideringsfel. Om parsern hittar några fel utlöser den en ParsingException med en lista med fel:

    try
    {
        IReadOnlyDictionary<Dtmi, DTEntityInfo> parseResult = await modelParser.ParseAsync(modelJson);
    }
    catch (ParsingException pex)
    {
        Console.WriteLine(pex.Message);
        foreach (var err in pex.Errors)
        {
            Console.WriteLine(err.PrimaryID);
            Console.WriteLine(err.Message);
        }
    }
    
  4. ModelGranska . Om valideringen lyckas kan du använda modellparser-API:et för att inspektera modellen. Följande kodfragment visar hur du itererar över alla modeller som parsats och visar befintliga egenskaper:

    foreach (var item in parseResult)
    {
        Console.WriteLine($"\t{item.Key}");
        Console.WriteLine($"\t{item.Value.DisplayName?.Values.FirstOrDefault()}");
    }
    

Nästa steg

Modellparser-API:et som granskas i den här artikeln gör det möjligt för många scenarier att automatisera eller verifiera uppgifter som är beroende av DTDL-modeller. Du kan till exempel dynamiskt skapa ett användargränssnitt från informationen i modellen.