C#源代码生成器
? SdtcnCoder參考了TheBeerHouse的系統(tǒng)結(jié)構(gòu),采用了三層結(jié)構(gòu)和緩存技術(shù),這里對SdtcnCoder代碼生成進(jìn)行簡單介紹.
一、數(shù)據(jù)類型模型?
1、??Field類是字段類型的基類,對SqlServer2005數(shù)據(jù)列屬性進(jìn)行了映射;?
2、??BigInt、Binary等是具體類,如下Binary,主要重寫各種數(shù)據(jù)類型在C#語法中的類型、默認(rèn)值、字符類型時(shí)的長度等;?
using System;?
using System.Data;?
using System.Collections.Generic;?
using System.Text;?
-?
namespace Sdtcn.Coder?
{?
? ? public class Binary : Field?
? ? {?
? ?? ???///??
? ?? ???/// 構(gòu)造函數(shù)?
? ?? ???///??
? ?? ???///??
? ?? ?? ?public Binary (DataRow row) : base(row)?
? ?? ???{?
? ?? ?? ?? ??
? ?? ???}?
? ?? ???///??
? ?? ???/// 重寫返回C#類型的方法?
? ?? ???///??
? ?? ???public override string CSharpTypeName?
? ?? ???{?
? ?? ?? ?? ?get?
? ?? ?? ?? ?{?
? ?? ?? ?? ?? ? return "Byte[]";?
? ?? ?? ?? ?}?
? ?? ???}?
? ?? ???///??
? ?? ???/// 重寫返回值?
? ?? ???///??
? ?? ???public override string DefaultValue?
? ?? ???{?
? ?? ?? ?? ?get?
? ?? ?? ?? ?{?
? ?? ?? ?? ?? ? return "null";?
? ?? ?? ?? ?}?
? ?? ???}?
? ?? ???public override string Length?
? ?? ???{?
? ?? ?? ?? ?get?
? ?? ?? ?? ?{?
? ?? ?? ?? ?? ? return "(" + this.Max_Length.ToString() + ")";?
? ?? ?? ?? ?}?
? ?? ???}?
? ? }?
}?
二、代碼生成?
代碼生成主要由Table類負(fù)責(zé),主要方法分為生成存儲(chǔ)過程、生成DAL、生成BLL、生成Aspx(當(dāng)前還沒有實(shí)現(xiàn),方法和生成BLL雷同)等幾類,具體參見源代碼。?
?
轉(zhuǎn)載于:https://blog.51cto.com/bbsitsq/1182351
總結(jié)
- 上一篇: getch, getche, getch
- 下一篇: 两个init的区别