共用方式為


網域屬性的屬性

「網域屬性」(domain property) 是模型項目的功能,可以存放值。 例如,Person 網域類別可能具有屬性 NameBirthDate。 在 DSL 定義中,網域屬性會列在圖表上的網域類別方塊中以及 DSL Explorer 中的網域類別之下。 如需詳細資訊,請參閱如何定義特定領域語言

注意

"property" 一字有兩種用法。 「網域屬性」(domain property) 是您在網域類別上定義的功能。 相反地,DSL 的許多項目都具有「屬性」(properties) ,這些屬性列在 DSL 定義的 [屬性] 視窗中。 例如,每個網域屬性都有一組屬性,這些屬性會在本主題中說明。

在執行階段,當使用者建立網域類別的執行個體時,可以在 [屬性] 視窗中看到網域屬性的值,並可顯示在圖形上。

大部分的網域屬性會以一般 CLR 屬性實作。 然而,從程式設計的觀點而言,網域屬性的功能比一般程式屬性的功能更豐富:

  • 您可以定義監視屬性狀態的規則和事件。 如需詳細資訊,請參閱 回應和傳播變更 (部分機器翻譯)。

  • 異動有助於防止不一致的狀態。 如需詳細資訊,請參閱在程式碼中巡覽和更新模型

    當您在圖表或 DSL Explorer 中選取 [網域屬性] 時,可以在 [屬性] 視窗中查看下列項目。 如需如何使用這些項目的詳細資訊,請參閱自訂和擴充特定領域語言

屬性 Description 預設值
說明 此描述可用來記載產生之設計工具的使用者介面 (UI)。 <none>
顯示名稱 將在產生的設計工具中針對此網域屬性顯示的名稱。 它可以包含空格和標點符號,例如 "Song Title"。 <none>
元素名稱提供者 如果您將 Is Element Name 設為 true,才適用此提供者。 您可以撰寫程式碼,為網域類別的新項目提供名稱,覆寫預設行為。

在 DSL 專案的程式碼檔中,建立從 ElementNameProvider 衍生的類別。

然後在 DSL Explorer 中,以滑鼠右鍵按一下 DSL 的根 ,然後按一下 [加入外部類型]。 輸入您的類別名稱。

再度選取此網域屬性,然後在下拉式清單中選取類別的名稱。
<none>
Getter 存取修飾詞 網域類別的存取層級 (publicinternal)。 此層級可控制程式碼存取屬性的範圍。 public
說明關鍵字 這個選擇性關鍵字可用來為此網域屬性編製 F1 說明的索引。 <none>
Is Browsable 如果為 True,則在此 DSL 的模型開啟時,會在屬性視窗中向使用者顯示網域屬性。

如果為 False,則在 UI 中會隱藏網域屬性。

如果您要使網域屬性可見但卻是唯讀,請設定 [Is UI Read Only]
True
Is Element Name 如果為 True,此網域屬性將在 DSL Explorer 中顯示為其模型項目的名稱。

新的模型項目將接收此屬性的唯一預設值。 如果您要控制這些值的產生方式,請設定 [項目名稱提供者]
False
Is UI Read Only 如果為 True,則無法使用 UI 變更網域屬性的值。 它仍然可由程式設定,並且可以在 [屬性] 視窗中看見它。

如果您要隱藏網域屬性,不讓使用者看到,請設定 [Is Browsable]。 如果您要藉由程式控制存取,請設定 [Setter 存取修飾詞]
False
種類 網域屬性的類型 (NormalCalculatedCustomStorage)。 如需詳細資訊,請參閱計算及自訂的儲存區屬性 Normal
名稱 此網域屬性的名稱。 它必須是有效的識別項,例如 SongTitle <none>
注意事項 與此網域屬性相關聯的非正式附註。 <none>
Setter 存取修飾詞 Setter 的存取修飾詞。 此修飾詞可控制程式碼設定屬性的範圍。 public
類型 屬性的類型。 若要加入變數類型的清單,請以滑鼠右鍵按一下 DSL Explorer 中的 DSL 根 ,然後按一下 [加入外部類型] String

另請參閱