根據powerdesigner的OO模型生成C#代碼
習慣了用Powerdesigner設計數據庫模型,XDE設計類圖。因此我一般的設計方法是用PD做分析模型,然后,用分析模型生成數據庫物理模型和C#代碼,再用XDE從C#代碼中反向工程生成XDE模型。
但是在今天生成代碼時發現一個小小的問題:在PD生成代碼時,它會將實體中的attribe生成C#中的public field,而不是property,找了半天終于發現有一種方法:
在\Resource Files\Object Languages\csharp.xol文件中保存了根據模型生成代碼的配置,因此,只需要修改其中Attribute項的definition項即可。或者使用lanuage-->edit current object language..功能,將 Profile\Attribute\Templates\definition改為:
.if (%isValidAttribute%)
[%comment%\n]\
[%customAttributes%\n]\
[%oid%\n]\
.if (%multiplicity% == 1) and (%isIndexer% == false)
private %dataType% _%code%[ = %InitialValue%];
[%visibility% ][%flags% ]%dataType% %code%
{
get
{
return _%code%;
}
set
{
_%code%=value;
}
}
.else
private %dataType%[%arraySize%] _%code%[ = %InitialValue%];
[%visibility% ][%flags% ]%dataType%[%arraySize%] %code%
{
get
{
return _%code%;
}
set
{
_%code%=value;
}
}
.endif
.endif
(上面的代碼可以做define進行簡化。)
另外,今天在Flier's Sky那里找到了一個.NET Refactoring for VS.NET的破解方法,
。
不過那個注冊表路徑有問題,應該是[HKEY_LOCAL_MACHINE\SOFTWARE\.NET Refactoring\C# Refactoring Tool]
"Key"="Flier Lu"
但是在今天生成代碼時發現一個小小的問題:在PD生成代碼時,它會將實體中的attribe生成C#中的public field,而不是property,找了半天終于發現有一種方法:
在\Resource Files\Object Languages\csharp.xol文件中保存了根據模型生成代碼的配置,因此,只需要修改其中Attribute項的definition項即可。或者使用lanuage-->edit current object language..功能,將 Profile\Attribute\Templates\definition改為:
.if (%isValidAttribute%)
[%comment%\n]\
[%customAttributes%\n]\
[%oid%\n]\
.if (%multiplicity% == 1) and (%isIndexer% == false)
private %dataType% _%code%[ = %InitialValue%];
[%visibility% ][%flags% ]%dataType% %code%
{
get
{
return _%code%;
}
set
{
_%code%=value;
}
}
.else
private %dataType%[%arraySize%] _%code%[ = %InitialValue%];
[%visibility% ][%flags% ]%dataType%[%arraySize%] %code%
{
get
{
return _%code%;
}
set
{
_%code%=value;
}
}
.endif
.endif
(上面的代碼可以做define進行簡化。)
另外,今天在Flier's Sky那里找到了一個.NET Refactoring for VS.NET的破解方法,
不過那個注冊表路徑有問題,應該是[HKEY_LOCAL_MACHINE\SOFTWARE\.NET Refactoring\C# Refactoring Tool]
"Key"="Flier Lu"
浙公網安備 33010602011771號