精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解C#代碼文件生成擴展代碼文件

開發 后端
本文著重講解用C#代碼文件生成擴展代碼文件,并且詳細講了在數據持久層里是采用XML結合IVsSingleFileGenerator來生成相關實體類的方法。

看到這標題的朋友可能搞不懂到底在搞什么,不過不要緊有興趣的朋友可以先了解一下IVsSingleFileGenerator到底是用來做什么用的《實現自定義的VsSingleFileGenerator 》;在vs.net里提供一個IVsSingleFileGenerator接口可以方便地為項目文件生成附屬文件,如剛才那文章提到的根據XML文件自動生成一個附屬的C#代碼文件;當然這個IVsSingleFileGenerator并不只是針對XML文件,可以是隨便為任何項目文件生成附屬文件你只要在文件屬性中設置相關Custom Tools就可以了.

為什么在這里我提出在代碼文件的基礎上再生相關的代碼附屬文件呢,為什么不直接在原代碼文件寫完整就可以了;原因很簡單因為手寫代碼是沒有電腦來得快,最主要一個原因是基于XML的IVsSingleFileGenerator在某方面不好所以才采用基于代碼文件的方式作為代碼描述模板.用XML描述在現情況碰到的問題,在我的數據持久層里是采用XML結合IVsSingleFileGenerator來生成相關實體類的.

內容大概如下:


<SmarkDatamodels xmlns="http://SmarkData.cn/model.xsd" >
<Class Name="Customer" Table="vp_Customer">
<ID Name="CustomerID" Type="System.Int64"/>
<Property Name="UserName" Type="System.String" Comment="用戶名"/>
<Property Name="UserPWD" Type="System.String" Comment="用戶密碼"/>
<Property Name="CustomerType" Type="System.Int32" Comment="客戶類型"/>
<Property Name="CustomerName" Type="System.String" Comment="自定義名"/>
<Property Name="Sex" Type="System.Boolean" Comment="性別"/>
<Property Name="Region" Type="System.String" Comment="地區"/>
<Property Name="City" Type="System.String" Comment="城市"/>
<Property Name="IDCard" Type="System.String" Comment="身份證號"/>
<Property Name="EMail" Type="System.String" Comment="電子郵件"/>
<Property Name="Phone" Type="System.String" Comment="電話"/>
</Class>
</SmarkDatamodels>
VsSingleFileGenerator會根據XML生成以下相關實體:
/// <summary>
/// 用戶名
/// </summary>
public virtual string UserName {
get {
return this.mUserName;
}
set {
this.mUserName = value;
this.EntityState.FieldChange("UserName");
}
}
/// <summary>
/// 用戶密碼
/// </summary>
public virtual string UserPWD {
get {
return this.mUserPWD;
}
set {
this.mUserPWD = value;
this.EntityState.FieldChange("UserPWD");
}
}
/// <summary>
/// 客戶類型
/// </summary>
public virtual int CustomerType {
get {
return this.mCustomerType;
}
set {
this.mCustomerType = value;
this.EntityState.FieldChange("CustomerType");
}
}

VsSingleFileGenerator有個不好的地方就是當主文件修改后會重新生成附屬文件,這樣就導致你無法修改代碼文件.如果想為某些屬性成員添加Attribute來處理一些功能基本是沒辦法的.

如添加成員數據驗證:

[NotNull]
[Length("5","16","用戶名長度必須在5-16個字符內!")]
public string UserName
{
get;
set;
}

即使能解決VsSingleFileGenerator生成附屬文件沖突問題;但也要面對另一個問題,就如何擴展XML來處理這些擴展呢,添加XMLSchema擴展描述規則,重寫VsSingleFileGenerator代碼生成部份;這樣下來沒多久我估計自己會瘋了....

實際情況添加不同Attribute來擴展輔助功能是很常見的事情,就一個驗證來說根據實際情況就有很多情況,類構造方式也不一樣.就針對這些情況來擴展XMLSchema和重寫VsSingleFileGenerator帶來的工作量就不用說了,還有一個問題就是XML并不能提供類型編譯的保證這樣對XML的質量是很難保證.

經過了一段時間的思考發現為什么不直接用代碼作為原模板呢,這樣就能得到IDE的支持,強在編譯器的支持下保證類型輸入規則的有效性.以下是本人實現的簡單生成模型:

[Table]
interface IUser
{
[ID]
string UserName { get; set; }
string BirthDate { get; set; }
string Region { get; set; }
string Remark { get; set; }
}

生成的相關代碼

[Table]
[Serializable]
public class User:Smark.Data.Mappings.DataObject
{
[ID]
public string UserName { get{ return mUserName;}
set{mUserName=value;EntityState.FieldChange("UserName");} }
private string mUserName;
public static Smark.Data.FieldInfo userName = new Smark.Data.FieldInfo("User","UserName");
public string BirthDate { get{ return mBirthDate;}
set{mBirthDate=value;EntityState.FieldChange("BirthDate");} } 
private string mBirthDate;
public string Region { get{ return mRegion;}
set{mRegion=value;EntityState.FieldChange("Region");} }
private string mRegion;
public string Remark { get{ return mRemark;}
set{mRemark=value;EntityState.FieldChange("Remark");} }
private string mRemark;
}
}

這樣的話即使我們如何給屬性添加Attribute都不會帶來代碼上的修改,VsSingleFileGenerator只對屬性作一個模板生成其他內容搬過來就可以了:)

WPS的排版真是沒有WORD的好...估計我不會用.

【編輯推薦】

  1. C#在WinForm開發中Label換行方法
  2. C#中使用多線程訪問Winform問題解決方案
  3. 如何使用C#代碼實現DataTemplate
責任編輯:彭凡 來源: cnblogs
相關推薦

2009-09-02 14:06:14

C#文件傳送

2009-08-18 13:35:06

C#枚舉文件

2009-09-07 06:48:13

C#透明窗體

2009-09-01 10:37:51

C#項目代碼C#代碼規范

2009-09-02 17:12:06

C#關機代碼

2009-08-12 18:29:06

C#讀取TXT文件

2009-08-13 09:34:55

C#讀寫ini文件

2009-08-24 18:06:36

源程序代碼C#讀取XML文件

2009-08-18 17:05:08

C#操作xml文件

2009-08-28 14:34:47

C# Global.a

2009-08-13 09:58:55

C#讀取配置文件

2009-09-01 11:25:08

C#讀取Word文件

2023-09-04 11:46:09

C#動態代碼

2024-03-06 08:52:59

C#Emit代碼

2009-08-24 15:58:00

Visual C#生成

2024-04-03 00:10:24

C#System數據

2024-04-25 12:35:14

JSONC#開發

2016-12-30 09:23:06

Linux代碼文件

2011-08-24 17:15:33

Lua源代碼文件

2009-08-26 11:53:56

C#打印文本文件
點贊
收藏

51CTO技術棧公眾號

亚洲精品二三区| 午夜电影网一区| 97久草视频| 久久99国产综合精品免费| 欧美日韩激情| 欧美一卡2卡3卡4卡| 人妻夜夜添夜夜无码av| 国产三级在线免费观看| 国产精品99久久久久久久vr| **欧美日韩vr在线| 九九热视频在线免费观看| 国产乱论精品| 欧美人妖巨大在线| 久色视频在线播放| 国产黄色在线观看| 国产亚洲成av人在线观看导航| 亚洲精品欧美日韩| 日韩黄色一级视频| 亚洲私人影院| www.日韩系列| 黄色aaa视频| 91精品国产乱码久久久竹菊| 欧美三级电影在线观看| 男女超爽视频免费播放| 欧美a免费在线| 国产亚洲美州欧州综合国| 国产高清一区二区三区| 91国偷自产中文字幕久久| 久久都是精品| 性色av一区二区三区红粉影视| 91麻豆精品久久毛片一级| 精品在线手机视频| 亚洲国产成人精品久久| 国内av免费观看| 欧美亚洲综合视频| 日本高清不卡aⅴ免费网站| av高清在线免费观看| 图片区小说区亚洲| 亚洲女人小视频在线观看| 无遮挡亚洲一区| 欧美女v视频| 91在线播放网址| 成人欧美视频在线| 亚洲成人777777| 国产91丝袜在线观看| 亚洲一区中文字幕| 97超碰国产在线| 麻豆精品视频在线观看视频| 国产精品久久久久久久久男| 亚洲色成人www永久网站| 翔田千里一区二区| 欧美在线观看网址综合| 国产三级av片| 国产日韩亚洲欧美精品| 91国产中文字幕| 日韩久久精品视频| 国产亚洲一级| 清纯唯美日韩制服另类| 国产主播第一页| 青娱乐精品在线视频| 国产精品手机播放| 国产精品久久777777换脸| 精品一二线国产| 亚洲iv一区二区三区| 国产99久久九九精品无码免费| 狠狠色丁香久久婷婷综合丁香| 91久久夜色精品国产网站| 国产视频在线观看免费| 国产成人av福利| 精品日产一区2区三区黄免费 | 国产精品www爽爽爽| 欧美精选视频在线观看| 色妞欧美日韩在线| av激情在线观看| 亚洲东热激情| 国产va免费精品高清在线观看| 国产情侣呻吟对白高潮| 精品一区二区在线观看| 国产精品一区二区欧美黑人喷潮水| 色一情一乱一乱一区91av| 国产三级精品三级| 欧美h视频在线观看| 免费男女羞羞的视频网站在线观看| 亚洲国产美国国产综合一区二区| 97超碰青青草| 福利一区三区| 日韩国产欧美精品一区二区三区| 先锋影音av在线| 欧美精品99| 欧美诱惑福利视频| 99国产精品一区二区三区 | 精品国产无码在线观看| 区一区二视频| 欧美国产日韩免费| 国产精品suv一区| 国产在线播放一区三区四| 狠狠久久综合婷婷不卡| 日本天堂在线观看| 精品国产1区2区| 亚洲36d大奶网| 成人资源在线| 日韩小视频在线观看| 日韩和一区二区| 精品一区二区三区久久| 久久99精品国产99久久| 黄视频网站在线看| 色婷婷综合在线| 免费黄视频在线观看| 国产日产精品_国产精品毛片| 欧美大肥婆大肥bbbbb| 天堂网视频在线| 成人黄色777网| 在线观看亚洲视频啊啊啊啊| 自拍网站在线观看| 欧美成人午夜电影| 成人18视频免费69| 日韩av在线发布| 精品乱子伦一区二区三区| www在线视频| 欧美人狂配大交3d怪物一区| 日本性高潮视频| 亚洲精选91| 98国产高清一区| 麻豆网站在线| 欧美专区在线观看一区| 久久国产精品无码一级毛片| 欧美日韩国产欧| 亚洲自拍偷拍网址| 调教视频免费在线观看| 色八戒一区二区三区| a天堂视频在线观看| 欧美成人亚洲| 91最新国产视频| 秋霞成人影院| 欧美日韩国产在线观看| 国产jk精品白丝av在线观看 | 1区2区3区国产精品| 日韩福利视频在线| 国产精品日韩精品中文字幕| 午夜精品一区二区三区av| 成人黄色在线观看视频| 亚洲欧美另类图片小说| 亚洲色图偷拍视频| 欧美激情欧美| 成人国产精品一区二区| 日韩伦理在线观看| 欧美夫妻性生活| 女人18毛片毛片毛片毛片区二| 蜜臀久久99精品久久久久久9| 欧美亚洲精品日韩| 日本精品不卡| 国产亚洲一区二区精品| 波多野结衣小视频| 国产精品色一区二区三区| 婷婷丁香激情网| 久久亚洲国产| 亚洲影院色无极综合| 在线观看小视频| 精品久久久久久亚洲综合网| 日本网站在线免费观看| 久久久一区二区三区捆绑**| www.色偷偷.com| 久久综合国产| 亚洲一区二区三区xxx视频| 欧美1234区| 国产偷亚洲偷欧美偷精品| 成人免费毛片视频| 国产精品五月天| 中文字幕剧情在线观看| 亚洲乱码电影| 久久66热这里只有精品| 精品国产欧美日韩一区二区三区| 精品国产一区二区三区久久久狼| aa视频在线免费观看| 午夜精品国产更新| 国产特级黄色录像| 国内一区二区视频| 成人毛片一区二区| 欧美亚洲高清| 成人av蜜桃| 欧美羞羞视频| 久久精品国产亚洲精品| 日本久久一级片| 欧美亚洲综合另类| 久久高清无码视频| 久久久.com| 亚洲丝袜在线观看| 久久不射2019中文字幕| 女同性恋一区二区| 蜜桃一区二区三区| 亚洲一区二区久久久久久久 | 国产一区红桃视频| 青春草视频在线| 亚洲欧洲偷拍精品| 国产福利资源在线| 欧美伊人久久大香线蕉综合69| 国产探花在线播放| 国产欧美一区二区精品性色超碰| 巨乳女教师的诱惑| 秋霞午夜av一区二区三区| www.在线观看av| 日韩欧美三级| 久久久精品国产一区二区三区| 亚洲一区av| 日本在线观看天堂男亚洲 | 丰满人妻一区二区三区大胸| 男女av一区三区二区色多| 免费观看亚洲视频| 成人一二三区| 欧美午夜精品理论片a级大开眼界| 欧美h版在线观看| 国产精品亚洲激情| 欧美大胆性生话| 国模私拍视频一区| www视频在线看| 日韩在线视频免费观看| 国产鲁鲁视频在线观看免费| 亚洲成人av片| 国产高潮在线观看| 欧美精品第一页| 99re这里只有精品在线| 精品久久香蕉国产线看观看亚洲| 91在线播放观看| 国产精品的网站| 97在线观看免费视频| 99久久免费国产| 熟妇高潮一区二区| 国产成人精品影视| 欧美xxxxxbbbbb| 六月婷婷色综合| 亚洲第一中文av| 视频一区免费在线观看| 男人操女人免费软件| 亚洲另类自拍| www..com日韩| 一区二区视频欧美| 免费高清一区二区三区| 欧美精品一卡| 99久久免费观看| 国产精品激情| 日韩人妻无码精品久久久不卡| 欧美久久久久| 日本福利视频一区| 亚洲人成毛片在线播放女女| 国产 日韩 欧美在线| 亚洲第一网站| www.爱色av.com| 久久国产99| 亚洲色精品三区二区一区| 欧美一级播放| 丁香婷婷激情网| 免费人成精品欧美精品| 孩娇小videos精品| 九九视频精品免费| 日本一区二区三区在线免费观看| 国产91精品一区二区麻豆网站| 中文字幕永久免费| www.色综合.com| 公侵犯人妻一区二区三区| 国产欧美日本一区视频| 免费黄色国产视频| 亚洲精品国产第一综合99久久 | av电影在线播放高清免费观看| 在线播放日韩欧美| 国产成人l区| 欧美肥婆姓交大片| 天天综合av| 国产精品自在线| 日本一区二区三区播放| 久久av免费一区| 激情婷婷综合| 日本不卡一区二区三区四区| 黄色另类av| 黑森林福利视频导航| 麻豆精品蜜桃视频网站| 91精产国品一二三| www精品美女久久久tv| 精品视频第一页| 亚洲成人午夜影院| 久久久久久久久久一级| 欧美一区二区三区视频免费| 日韩在线一区二区三区四区| 亚洲日本成人女熟在线观看| jizz性欧美| 日本午夜人人精品| 成人污污www网站免费丝瓜| 国产无套精品一区二区| 久久中文亚洲字幕| 欧美在线一区视频| 老司机免费视频一区二区| 人妻 日韩 欧美 综合 制服| 国产精品视频一二三区| 国产在线视频在线观看| 欧美日韩综合在线免费观看| 日韩在线一区二区三区四区| 日日噜噜噜夜夜爽亚洲精品| 成人免费网站观看| 91久久久久久久久久| 伊人久久大香线蕉综合网站| 无码人妻aⅴ一区二区三区日本| 国产农村妇女毛片精品久久莱园子| 日本中文字幕观看| 91麻豆蜜桃一区二区三区| 51精品免费网站| 色八戒一区二区三区| 国产77777| 久久久999成人| 欧美在线va视频| 久久艹中文字幕| 欧美va天堂| xxxx在线免费观看| 中文字幕乱码一区二区免费| 精品欧美一区二区三区免费观看| 91精品国产91综合久久蜜臀| 国产黄色片在线播放| 午夜精品视频网站| 中文字幕一区日韩精品 | 久久婷婷五月综合| 黄网站色欧美视频| 亚洲国产成人一区二区| www.亚洲天堂| 成人综合网站| 五月天国产一区| 日本午夜一区二区| 亚洲av片不卡无码久久| 亚洲韩国一区二区三区| 99视频在线观看免费| 久久夜色精品亚洲噜噜国产mv| 色猫猫成人app| 日韩视频在线播放| 丝袜美腿一区二区三区| 手机av免费看| 欧美性xxxxxxx| 欧洲成人av| 欧美一级bbbbb性bbbb喷潮片| 久久亚州av| 人妻少妇精品无码专区二区| 成人av在线资源网站| 久久久美女视频| 精品国产一区二区国模嫣然| 国产嫩草在线视频| 国产精品亚洲一区| 亚洲精品字幕| 久久丫精品国产亚洲av不卡| 精品日韩美女的视频高清| 午夜成人免费影院| 日本高清不卡的在线| 深爱激情综合网| 日韩av手机版| 中文字幕亚洲电影| 国产伦精品一区二区三区四区| 精品国产拍在线观看| 精品一区二区三区中文字幕在线| 黄色a级在线观看| 国产精品77777| 国产在线视频你懂的| 日韩精品在线影院| 日韩在线影院| 亚洲日本精品一区| 国产精品资源在线| 日韩黄色a级片| 亚洲视频777| 婷婷久久免费视频| 欧美黄色免费网址| 91一区二区在线| 国内av在线播放| 久久久av亚洲男天堂| av成人男女| 毛片av免费在线观看| 亚洲同性同志一二三专区| 午夜美女福利视频| 欧美一级成年大片在线观看| 欧美手机视频| 特黄特黄一级片| 色一情一乱一乱一91av| 成人免费观看视频大全| 国产三级精品在线不卡| 日本麻豆一区二区三区视频| 国产精品久久久久久久精| 亚洲精品久久在线| 日本午夜免费一区二区| 亚洲理论电影在线观看| 国产性做久久久久久| 99视频在线观看免费| 日本高清久久天堂| 91成人影院| 精品欧美一区二区久久久| 日韩一卡二卡三卡四卡| 久久sese| 无码人妻精品一区二区蜜桃网站| 国产亚洲欧美中文| 黄色aaa毛片| 国产有码一区二区| 国产日韩精品视频一区二区三区 | 成人精品一区二区| 亚洲最大的免费| 日韩精品一区第一页| 久久免费视频播放| 中文字幕综合在线| 欧洲在线一区|