Vb.net 使用文本文件创建vb类。类名和属性的值应该来自数据库
我想创建一个可执行文件,它将使用文本文件作为模板,并在vb.net中创建一个类 类名及其属性存储在数据库中。用户应该能够输入类名。模板中的ClassName和AttributeName标记将被数据库中相应的值替换。Vb.net 使用文本文件创建vb类。类名和属性的值应该来自数据库,vb.net,Vb.net,我想创建一个可执行文件,它将使用文本文件作为模板,并在vb.net中创建一个类 类名及其属性存储在数据库中。用户应该能够输入类名。模板中的ClassName和AttributeName标记将被数据库中相应的值替换。 任何线索都将不胜感激。谢谢。代码文件只是文本文件。生成代码文件有点令人困惑,因为源代码显示为字符串文字,但从技术意义上讲,这并不十分困难: Sub GenerateCode() Dim dtb As New DataTable dtb.Columns.Add("C
任何线索都将不胜感激。谢谢。代码文件只是文本文件。生成代码文件有点令人困惑,因为源代码显示为字符串文字,但从技术意义上讲,这并不十分困难:
Sub GenerateCode()
Dim dtb As New DataTable
dtb.Columns.Add("ClassName")
dtb.Columns.Add("PropertyName")
dtb.Columns.Add("PropertyType")
'NOTE: datatable must be sorted by ClassName
dtb.Rows.Add("ClassOne", "PropertyOne", "String")
dtb.Rows.Add("ClassOne", "PropertyTwo", "Integer")
dtb.Rows.Add("ClassOne", "PropertyThree", "String")
dtb.Rows.Add("ClassTwo", "AnotherPropertyOne", "String")
dtb.Rows.Add("ClassTwo", "AnotherPropertyTwo", "Integer")
dtb.Rows.Add("ClassTwo", "AnotherPropertyThree", "String")
Dim strFilename As String = ""
Dim strParentFolder As String = "C:\Junk"
If Not System.IO.Directory.Exists(strParentFolder) Then
System.IO.Directory.CreateDirectory(strParentFolder)
End If
Dim strPreviousClassName As String = ""
Dim sb As New System.Text.StringBuilder
For Each drwProperty As DataRow In dtb.Rows
Dim strThisClassName As String = drwProperty("ClassName").ToString
If strThisClassName <> strPreviousClassName Then
'class name has changed
If strPreviousClassName > "" Then
'write previous class
sb.AppendLine("End Class")
strFilename = strParentFolder & "\" & strPreviousClassName & ".vb"
My.Computer.FileSystem.WriteAllText(strFilename, sb.ToString, False)
End If
'start new class
sb = New System.Text.StringBuilder
sb.AppendLine("Class " & strThisClassName)
strPreviousClassName = strThisClassName
End If
'append property
sb.AppendLine(" Property " & drwProperty("PropertyName").ToString & " As " & drwProperty("PropertyType").ToString)
Next drwProperty
'Write last class
sb.AppendLine("End Class")
strFilename = strParentFolder & "\" & strPreviousClassName & ".vb"
My.Computer.FileSystem.WriteAllText(strFilename, sb.ToString, False)
End Sub
Sub-GenerateCode()
Dim dtb作为新数据表
dtb.Columns.Add(“类名称”)
dtb.Columns.Add(“PropertyName”)
dtb.Columns.Add(“PropertyType”)
'注意:datatable必须按类名排序
添加(“ClassOne”、“PropertyOne”、“String”)
添加(“ClassOne”、“PropertyTwo”、“Integer”)
添加(“ClassOne”、“PropertyTree”、“String”)
Add(“ClassTwo”,“AnotherPropertyOne”,“String”)
Add(“ClassTwo”,“AnotherPropertyTwo”,“Integer”)
Add(“ClassTwo”,“AnotherPropertyTree”,“String”)
Dim strFilename As String=“”
Dim strParentFolder As String=“C:\Junk”
如果不存在System.IO.Directory.Exists(strParentFolder),则
System.IO.Directory.CreateDirectory(strParentFolder)
如果结束
Dim STRPREVIOUSSCLASSNAME As String=“”
将sb设置为新System.Text.StringBuilder
将每个drwProperty作为dtb.Rows中的DataRow
Dim strThisClassName As String=drwProperty(“ClassName”).ToString
如果strClassName strPreviousClassName,则
'类名已更改
如果strPreviousClassName>“”则
“写上一节课
sb.附录行(“末级”)
strFilename=strParentFolder&“\”&strPreviousClassName&“.vb”
My.Computer.FileSystem.writealText(strFilename,sb.ToString,False)
如果结束
"开新课",
sb=新System.Text.StringBuilder
sb.AppendLine(“类”和strClassName)
strPreviousClassName=strClassName
如果结束
'附加属性
sb.AppendLine(“Property”和drwProperty(“PropertyName”).ToString和“As”和drwProperty(“PropertyType”).ToString)
下一个drwProperty
“写最后一节课
sb.附录行(“末级”)
strFilename=strParentFolder&“\”&strPreviousClassName&“.vb”
My.Computer.FileSystem.writealText(strFilename,sb.ToString,False)
端接头
也许吧