2012-10-25 165 views
2

我有一個UML類圖,在企業架構師中有兩個類A和B(示例簡化)。類圖顯示A和B之間的關聯。對於A和B,關聯分別爲0..1和0..m。這意味着A可以有0 ... m個B實例,B屬於0或1個A實例。我生成與企業架構師這個C#代碼(簡化):從UML類圖生成代碼

class A 
{ 
    public B _b; 
} 

class B 
{ 

} 

然而,如果不是寧爲:

class A 
{ 
    public IList<B> _bs; 
} 

class B 
{ 

} 

有什麼我有代碼生成過程中要考慮(我還選擇這兩個類和比生成代碼沒有成功)。

+1

只是不這樣做。當你必須解決所有使用該工具時遇到的問題時,你認爲通過將設計自動生成代碼來節省的時間將會很快消失。 –

+0

那麼工具做得不好呢? – cs0815

回答

2

轉到工具 - 選項 - 源代碼創建 - C#並單擊集合類按鈕以指定用於代碼生成的集合類(忽略1 .. * 標籤)。

您可以在連接器的屬性中的目標角色選項卡上指定多重屬性(有序等)(我非常確定EA會忽略源角色上的0..1多重性;其實並沒有太多它可以做到這一點)。

最後,確保您的所有類和包都指定爲C#。最簡單的方法是在項目瀏覽器中右鍵單擊包,然後選擇代碼工程 - 重置此包的選項,然後在對話框中指定「Where language is <All>」,「Convert to C#」和Process Child Packages。

1

您需要定義您希望代碼生成使用哪個集合類。它從內存中,工具>選項>代碼工程> C#

+0

我已經做到了。 – cs0815