Main.cst 入口程序
1
<%--
2
Name:
3
Author:
4
Description:
5
--%>
6
<%@ CodeTemplate Language="C#" ResponseEncoding="UTF-8" TargetLanguage="Text" Src="Helper.cs" Inherits="Helper" Debug="False" Description="Template description here."%>
7![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
<%@ Assembly Name="CodeSmith.CustomProperties" %>
9
<%@ Assembly Name="CodeSmith.BaseTemplates" %>
10
<%@ Assembly Name="System.Data" %>
11
<%@ Assembly Name="SchemaExplorer" %>
12
<%@ Assembly Name="System.Design" %>
13![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
14
<%@ Import Namespace="System.Data" %>
15
<%@ Import Namespace="SchemaExplorer" %>
16
<%@ Import Namespace="System.Text" %>
17
<%@ Import Namespace="System.IO" %>
18![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
19
<%@ Property Name="DataBase" Type="SchemaExplorer.DatabaseSchema" Category="" Description="当前生成的数据库对象" %>
20
<%@ Property Name="NameSpace" Type="System.String" Default="" Optional="false" Category="" Description="当前生成命名空间" %>
21
<%@ Property Name="ProjectName" Type="System.String" Default="" Optional="false" Category="" Description="项目名称" %>
22
<%@ Property Name="ModuleName" Type="System.String" Default="" Optional="false" Category="" Description="项目名称" %>
23
<%@ Property Name="AutoExecuteScript" Type="System.Boolean" Default="False" Category=""
24
Description="是否自动执行生成后的脚本" %>
25
26
<%@ Register Name="AbstractProvider" Template="AbstractProvider.cst"%>
27
<%@ Register Name="BusinessObject" Template="BusinessObject.cst"%>
28
<%@ Register Name="ProviderCollection" Template="ProviderCollection.cst"%>
29
<%@ Register Name="ProviderManagerSection" Template="ProviderManagerSection.cst"%>
30
<%@ Register Name="SqlHelper" Template="SqlHelper.cst"%>
31
<%@ Register Name="SqlProvider" Template="SqlProvider.cst"%>
32
<%@ Register Name="SqlStoredProcedures" Template="SqlStoredProcedures.cst"%>
33
<%@ Register Name="ConfigTemplet" Template="ConfigTemplet.cst"%>
34
<%@ Register Name="SqlBusiness" Template="SqlBusiness.cst"%>
35
<script runat="template">
36
// My methods here.
37
// 生成文件的方法
38
public override void Render(System.IO.TextWriter writer)
39
{
40
41
42
string projectDirectory=OutputDirectory;
43
AbstractProvider abstractProvider=new AbstractProvider();
44
abstractProvider.NameSpace=this.NameSpace;
45
abstractProvider.DataBase=this.DataBase;
46
abstractProvider.ModuleName= this.ModuleName;
47
try
48
{
49
string abstractProviderDirectory=projectDirectory+"\\"+ProjectName+".Framework"+"\\"+ModuleName+".Framework";
50
string abstractProviderFilePath=abstractProviderDirectory+"\\AbstractProvider.cs";
51
writer.WriteLine("AbstractProvider");
52
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
53
abstractProvider.Render(writer);
54
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
55![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
56
if (!Directory.Exists(abstractProviderDirectory)) Directory.CreateDirectory(abstractProviderDirectory);
57
abstractProvider.RenderToFile(abstractProviderFilePath,true);
58
Trace.WriteLine("The "+abstractProviderFilePath.ToString()+" is Completion");
59
}
60
catch(Exception ex)
61
{
62
OutPutErrorMessage("AbstractProvider",ex.Message.ToString());
63
}
64
65
66
67
ProviderCollection providerCollection=new ProviderCollection();
68
providerCollection.NameSpace=this.NameSpace;
69
providerCollection.ModuleName=this.ModuleName;
70
try
71
{
72
string providerCollectionDirectory=projectDirectory+"\\"+ProjectName+".Framework"+"\\"+ModuleName+".Framework";
73
string providerCollectionFilePath=providerCollectionDirectory+"\\ProviderCollection.cs";
74
writer.WriteLine("ProviderCollection");
75
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
76
providerCollection.Render(writer);
77
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
78![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
79
if (!Directory.Exists(providerCollectionDirectory)) Directory.CreateDirectory(providerCollectionDirectory);
80
providerCollection.RenderToFile(providerCollectionFilePath,true);
81
Trace.WriteLine("The "+providerCollectionFilePath.ToString()+" is Completion");
82
}
83
catch(Exception ex)
84
{
85
OutPutErrorMessage("ProviderCollection",ex.Message.ToString());
86
}
87
88
ProviderManagerSection providerManagerSection = new ProviderManagerSection();
89
providerManagerSection.NameSpace=this.NameSpace;
90
providerManagerSection.ModuleName= this.ModuleName;
91
try
92
{
93
string providerManagerSectionDirectory=projectDirectory+"\\"+ProjectName+".Framework"+"\\"+ModuleName+".Framework";
94
string providerManagerSectionFilePath=providerManagerSectionDirectory+"\\ProviderManagerSection.cs";
95
writer.WriteLine("ProviderManagerSection");
96
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
97
providerManagerSection.Render(writer);
98
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
99![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
100
if (!Directory.Exists(providerManagerSectionDirectory)) Directory.CreateDirectory(providerManagerSectionDirectory);
101
providerManagerSection.RenderToFile(providerManagerSectionFilePath,true);
102
Trace.WriteLine("The "+providerManagerSectionFilePath.ToString()+" is Completion");
103
}
104
catch(Exception ex)
105
{
106
OutPutErrorMessage("ProviderManagerSection",ex.Message.ToString());
107
}
108
109
110
SqlHelper sqlHelper= new SqlHelper();
111
sqlHelper.NameSpace = this.NameSpace;
112
try
113
{
114
string sqlHelperDirectory=projectDirectory+"\\"+ProjectName+".Providers";
115
string sqlHelperFilePath=sqlHelperDirectory+"\\SqlHelper.cs";
116
writer.WriteLine("SqlHelper");
117
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
118
sqlHelper.Render(writer);
119
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
120![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
121
if (!Directory.Exists(sqlHelperDirectory)) Directory.CreateDirectory(sqlHelperDirectory);
122
sqlHelper.RenderToFile(sqlHelperFilePath,true);
123
Trace.WriteLine("The "+sqlHelperFilePath.ToString()+" is Completion");
124
}
125
catch(Exception ex)
126
{
127
OutPutErrorMessage("SqlHelper",ex.Message.ToString());
128
}
129
130
SqlProvider sqlProvider= new SqlProvider();
131
sqlProvider.NameSpace = this.NameSpace;
132
sqlProvider.DataBase=this.DataBase;
133
sqlProvider.ModuleName=this.ModuleName;
134
try
135
{
136
string sqlProviderDirectory=projectDirectory+"\\"+ProjectName+".Providers"+"\\"+ModuleName+".Providers";
137
string sqlProviderFilePath=sqlProviderDirectory+"\\SqlProvider.cs";
138
writer.WriteLine("SqlProvider");
139
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
140
sqlProvider.Render(writer);
141
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
142![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
143
if (!Directory.Exists(sqlProviderDirectory)) Directory.CreateDirectory(sqlProviderDirectory);
144
sqlProvider.RenderToFile(sqlProviderFilePath,true);
145
Trace.WriteLine("The "+sqlProviderFilePath.ToString()+" is Completion");
146
}
147
catch(Exception ex)
148
{
149
OutPutErrorMessage("SqlProvider",ex.Message.ToString());
150
}
151
152
153
154
155
156
SqlBusiness sqlBusiness= new SqlBusiness();
157
sqlBusiness.NameSpace = this.NameSpace;
158
sqlBusiness.DataBase=this.DataBase;
159
sqlBusiness.ModuleName=this.ModuleName;
160
try
161
{
162
string sqlBusinessDirectory=projectDirectory+"\\"+ProjectName+".Business";
163
string sqlBusinessFilePath=sqlBusinessDirectory+"\\"+ModuleName+"Business.cs";
164
writer.WriteLine("SqlProvider");
165
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
166
sqlBusiness.Render(writer);
167
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
168![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
169
if (!Directory.Exists(sqlBusinessDirectory)) Directory.CreateDirectory(sqlBusinessDirectory);
170
sqlBusiness.RenderToFile(sqlBusinessFilePath,true);
171
Trace.WriteLine("The "+sqlBusinessFilePath.ToString()+" is Completion");
172
}
173
catch(Exception ex)
174
{
175
OutPutErrorMessage(ModuleName+"Business.cs",ex.Message.ToString());
176
}
177
178![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
179
180
Trace.WriteLine("BusinessObjects");
181
foreach(TableSchema Table in DataBase.Tables)
182
{
183
BusinessObject businessObject=new BusinessObject();
184
businessObject.NameSpace=this.NameSpace;
185
businessObject.Table=Table;
186
try
187
{
188
string businessObjectDirectory=projectDirectory+"\\"+ProjectName+".Framework"+"\\"+ModuleName+".Framework";
189
string businessObjectFilePath=businessObjectDirectory+"\\"+GetClassName(Table)+".cs";
190
writer.WriteLine(GetClassName(Table));
191
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
192
businessObject.Render(writer);
193
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
194
195
if (!Directory.Exists(businessObjectDirectory)) Directory.CreateDirectory(businessObjectDirectory);
196
businessObject.RenderToFile(businessObjectFilePath,true);
197
Trace.WriteLine("The "+businessObjectFilePath.ToString()+" is Completion");
198
}
199
catch(Exception ex)
200
{
201
OutPutErrorMessage(GetClassName(Table),ex.Message.ToString());
202
}
203
}
204
205
SqlStoredProcedures sqlStoredProcedures= new SqlStoredProcedures();
206
sqlStoredProcedures.AutoExecuteScript = this.AutoExecuteScript;
207
sqlStoredProcedures.DataBase = DataBase;
208
try
209
{
210
string sqlStoredProceduresDirectory=projectDirectory+"\\"+ProjectName+".ConfigurationFiles";
211
string sqlStoredProceduresFilePath=sqlStoredProceduresDirectory+"\\SqlStoredProcedures.sql";
212
writer.WriteLine("SqlStoredProcedures");
213
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
214
sqlStoredProcedures.Render(writer);
215
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
216![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
217
if (!Directory.Exists(sqlStoredProceduresDirectory)) Directory.CreateDirectory(sqlStoredProceduresDirectory);
218
sqlStoredProcedures.RenderToFile(sqlStoredProceduresFilePath,true);
219
Trace.WriteLine("The "+sqlStoredProceduresFilePath.ToString()+" is Completion");
220
}
221
catch(Exception ex)
222
{
223
OutPutErrorMessage("SqlStoredProcedures",ex.Message.ToString());
224
}
225
226
ConfigTemplet configTemplet = new ConfigTemplet();
227
try
228
{
229
string configTempletDirectory=projectDirectory+"\\"+ProjectName+".ConfigurationFiles";
230
string configTempletFilePath=configTempletDirectory+"\\ConfigTemplet.xml";
231
writer.WriteLine("ConfigTemplet");
232
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
233
configTemplet.Render(writer);
234
writer.WriteLine("------------------------------------------------------------------------------------------------------------------------");
235![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
236
if (!Directory.Exists(configTempletDirectory)) Directory.CreateDirectory(configTempletDirectory);
237
configTemplet.RenderToFile(configTempletFilePath,true);
238
Trace.WriteLine("The "+configTempletFilePath.ToString()+" is Completion");
239
}
240
catch(Exception ex)
241
{
242
OutPutErrorMessage("ConfigTemplet",ex.Message.ToString());
243
}
244
245
246
}
247
//取得要存放文件的目录
248
private string _outputDirectory = String.Empty;
249![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
250
[Editor(typeof(System.Windows.Forms.Design.FolderNameEditor), typeof(System.Drawing.Design.UITypeEditor))]
251
[Optional]
252
[Category("Output")]
253
[Description("The directory to output the results to.")]
254
public string OutputDirectory
255
{
256
get
257
{
258
// default to the directory that the template is located in
259
if (_outputDirectory.Length == 0) return this.CodeTemplateInfo.DirectoryName + "output\\";
260
261
return _outputDirectory;
262
}
263
set
264
{
265
_outputDirectory = value;
266
}
267
}
268![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
269
private void OutPutErrorMessage(string Name,string errorMessage)
270
{
271
Trace.WriteLine(Name);
272
Trace.WriteLine("------------------------------------------------------------------------------------------------------------------------");
273
Trace.WriteLine(errorMessage);
274
Trace.WriteLine("------------------------------------------------------------------------------------------------------------------------");
275
276
}
277
</script>
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
28
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
29
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
30
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
31
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
32
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
33
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
34
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
35
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
36
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
37
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
38
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
39
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
40
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
42
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
43
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
44
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
45
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
46
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
47
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
48
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
49
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
50
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
51
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
52
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
53
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
54
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
55
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
56
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
57
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
58
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
59
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
60
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
61
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
62
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
63
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
64
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
65
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
66
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
67
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
68
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
69
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
70
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
71
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
72
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
73
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
74
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
75
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
76
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
77
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
78
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
79
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
80
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
81
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
82
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
83
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
84
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
85
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
86
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
87
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
88
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
89
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
90
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
91
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
92
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
93
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
94
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
95
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
96
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
97
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
98
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
99
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
100
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
101
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
102
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
103
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
104
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
105
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
106
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
107
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
108
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
109
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
110
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
111
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
112
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
113
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
114
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
115
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
116
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
117
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
118
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
119
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
120
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
121
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
122
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
123
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
124
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
125
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
126
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
127
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
128
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
129
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
130
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
131
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
132
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
133
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
134
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
135
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
136
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
137
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
138
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
139
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
140
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
141
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
142
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
143
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
144
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
145
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
146
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
147
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
148
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
149
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
150
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
151
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
152
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
153
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
154
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
155
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
156
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
157
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
158
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
159
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
160
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
161
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
162
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
163
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
164
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
165
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
166
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
167
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
168
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
169
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
170
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
171
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
172
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
173
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
174
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
175
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
176
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
177
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
178
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
179
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
180
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
181
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
182
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
183
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
184
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
185
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
186
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
187
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
188
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
189
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
190
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
191
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
192
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
193
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
194
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
195
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
196
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
197
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
198
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
199
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
200
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
201
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
202
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
203
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
204
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
205
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
206
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
207
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
208
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
209
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
210
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
211
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
212
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
213
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
214
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
215
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
216
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
217
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
218
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
219
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
220
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
221
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
222
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
223
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
224
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
225
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
226
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
227
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
228
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
229
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
230
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
231
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
232
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
233
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
234
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
235
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
236
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
237
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
238
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
239
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
240
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
241
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
242
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
243
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
244
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
245
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
246
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
247
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
248
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
249
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
250
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
251
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
252
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
253
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
254
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
255
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
256
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
257
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
258
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
259
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
260
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
261
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
262
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
263
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
264
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
265
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
266
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
267
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
268
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
269
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
270
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
271
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
272
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
273
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
274
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
275
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
276
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
277
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)