Sdílet prostřednictvím


Zápis kódu pro úpravu jazyka specifického pro doménu

Tato část zobrazuje přístup, úprava nebo vytvoření modelu v jazyce specifické pro doménu pomocí vlastního kódu.

Existuje několik kontextů, které můžete napsat kód, který pracuje s DSL:

Instance tříd, které definují v DslDefinition.dsl jsou uloženy ve struktuře dat s názvem v paměti úložiště (IMS) nebo úložiště.Třídy, které definujete DSL vždy trvat úložiště jako argument konstruktoru.Pokud například vaše DSL definuje třídy nazvanou například:

Example element = new Example (theStore);

udržování objekty v úložišti (namísto stejně jako normální objekty) poskytuje několik výhod.

  • Transakce.Můžete seskupit řadu souvisejících změn do transakce:

    using (Transaction t = store.TransactionManager.BeginTransaction("updates"))

    {

    // make several changes to Store elements here

    t.Commit();

    }

    Pokud během změny, dojde k výjimce, tak, aby konečný Commit() nebyla provedena, obnoví úložiště do předchozího stavu.Pomáhá zajistit, že chyby nesmějí opustit modelu v nekonzistentním stavu.Další informace naleznete v tématu Navigace v modelu a aktualizace modelu v kódu programu.

  • Binární vztahy.Pokud definujete vztah mezi dvěma třídami, instance na obou koncích mají vlastnost, která přejde na druhém konci.Vždy se synchronizují dvě zakončení.Například definujete vztah rodičovství s rolí s názvem rodiče a děti, můžete napsat:

    John.Children.Add(Mary)

    Následující výrazy platí obě nyní:

    John.Children.Contains(Mary)

    Mary.Parents.Contains(John)

    Nelze také dosáhnout stejného efektu zápisem:

    Mary.Parents.Add(John)

    Další informace naleznete v tématu Navigace v modelu a aktualizace modelu v kódu programu.

  • Pravidla a události.Můžete definovat pravidla, které požární kdykoli zadané změny.Pravidla se používají například k udržování obrazce v diagramu s prvky modelu, které představují.Další informace naleznete v tématu Reagování na změny a šíření změn.

  • Serializace.Úložiště poskytuje standardní způsob serializovat objekty, které obsahuje do souboru.Můžete přizpůsobit pravidla pro serializaci a rekonstrukci.Další informace naleznete v tématu Přizpůsobení souborového úložiště a serializace XML.

Viz také

Koncepty

Přizpůsobení a rozšíření jazyka specifického pro doménu