TSL初體驗:構建一個簡單的Cell

一切從控制檯應用開始。
建立控制檯應用
確保安裝了GraphEngineVSExtension.vsix插件
管理你的NuGet程序包,從GraphEngine OSS Location安裝GraphEngine.Core

然後添加新項
在這裏插入圖片描述
其實這兩沒有啥區別,都是TSL文件。不過模板給我們做了一些樣例代碼,那我們就選擇DataModel(第二個),我們會看到TSL已經給了一個樣例代碼

cell MyCell
{
	int A;
}

如我們之前說的,TSL可以幫助我們定義數據模型,並且通過IDL進行數據消息的通知和解析。所以有兩件事情要記得

  • TSL中的代碼格式雖然和C#很像,但不是C#的代碼,也不是你的C#代碼可以直接訪問的
  • TSL定義的是數據模型,所以cell中不能定義方法,也不能定義屬性。簡單的說,除了字段,cell中啥都不能定義

那我們的cell怎麼使用呢?GraphEngine會把cell的結構編譯爲一組對象,幫助我們進行單元的訪問,存儲和使用。
現在到你的Program你會看到
在這裏插入圖片描述

GraphEngine生成了

  • 一個MyCell對象
  • 一組MyCell_Accessor訪問器
  • MyCell_Enumerable
  • 一組選擇器MyCell_local_selector
  • 在Global.LocalStorage加入了一組MyCell的訪問成員
    • Is
    • Load
    • Save
    • Use

這些成員可以幫助我們進行對MyCell的各種數據處理。

官方的樣例代碼中有這些的寫法

cell struct SimpleGraphNode
{
    List<CellId> Inlinks;
    List<CellId> Outlinks;
    string Name;
}

但目前看來,不建議大家用struct 關鍵字。我們要構建單元,直接用cell就可以了。

cell可以用Attributes修飾,和C#不同,我們不需要預先定義Attributes,直接聲明就可以了

[GraphNode, BaseType : Person]
cell Student
{
    [GraphEdge : Outlinks]
    List<CellId> friends;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章