2013-03-02 1 views
0

지정된 데이터베이스에서 테이블을 가져 와서 [className] .vb 파일을 빌드하는 클래스 빌더를 만들고 싶습니다.프로그래밍 방식으로 Class.vb 파일 생성

Dim strBuilder As New StringBuilder 

strBuilder.Append("Public class clsExample" & vbCrLf) 

'Create variables 
strBuilder.Append("Private _ID As String") 
strBuilder.Append(vbCrLf) 

'Create properties 
strBuilder.Append("Public Property _ID() As Integer" & vbCrLf) 
strBuilder.Append("Get" & vbCrLf) 
strBuilder.Append("return _ID" & vbCrLf) 
strBuilder.Append("end Get" & vbCrLf) 
strBuilder.Append("Set(ByVal Value As Integer)" & vbCrLf) 
strBuilder.Append("_ID = Value" & vbCrLf) 
strBuilder.Append("End Set" & vbCrLf) 
strBuilder.Append("End Property " & vbCrLf) 
strBuilder.Append(vbCrLf) 
strBuilder.Append(vbCrLf & "End Class") 

Console.Write(strBuilder.ToString()) 

Public Class clsExample 
     Private _ID As String 
     Public Property _ID() As Integer 
      Get 
       Return _ID 
      End Get 
      Set(ByVal Value As Integer) 
       _ID = Value 
      End Set 
     End Property 


    End Class 

내가 프로그램을 말하는 대해 이동하는 방법을 잘 모르겠어요 이전 코드를 사용하여 생성 된 clsExample.vb 파일에서이 결과를 얻으려면 : 예를 들어

[className] .vb 파일을 만들고 내 strBuilder를 파일에 코드로 포함하십시오. 희망이 의미가 ...

+1

그것은 현재의 필요성에 대한 아마 잔인한 사람입니다,하지만 당신은 보일 것입니다 [CodeDom] (http://msdn.microsoft.com/en-us/library/y2k85ax6.aspx). –

+0

@MarkHurd 감사합니다. 이전에 살펴 봤습니다. 당신은 과잉 이었지만 아직도 그것에 대해 알게되어서 좋았습니다. 나는 클래스 생성기를 빌드하고 끝냈다. 그것은 크게 작동한다. :) – Alex

답변

1

은 아마 당신이 여기 요구하는지보고 싶어하지만,이 같은 뭔가를 찾고있다 :

IO.File.WriteAllText("className.vb", strBuilder.ToString())

http://msdn.microsoft.com/en-us/library/ms143375.aspx

+0

그게 전부입니다 !!! 고맙습니다! 그것은 효과가 있었지만 왜 내가 지정한 디렉토리 (mainForm.vb와 다른 모든 파일들이있는 디렉토리)에 파일이 생성되었는지 설명 할 수 있습니까? 그렇지만 프로젝트 솔루션 탐색기에서는 볼 수 없습니다. – Alex

+0

볼 수 있도록 "프로젝트에 포함"을 클릭 할 수있었습니다. 프로그래밍 방식으로이를 수행 할 수있는 방법이 있습니까? – Alex

+0

@Alex : 확실치 않지만 그럴 수 있다고 생각합니다. BTW, "프로젝트에 포함"을 사용하면 한 번에 여러 파일을 수행 할 수 있습니다. – poke

1

나는 당신의 접근 방식을 정말로 이해하지 못한다. 그러나 당신이 동적 생성을 원하면 데이터베이스를 연결하고 필요한 모든 shema 정보를 읽어야한다.

나는이 프로젝트 http://sqldoc.codeplex.com/을 사용하여 테이블의 모든 데이터를 읽고 그 중 일부 코드를 생성했습니다. 이것은 아마도 좋은 시작일 것입니다. 이 프로젝트는 문서를 생성하지만 모든 데이터 정보를 읽고 그 밖의 작업을 수행 할 수도 있습니다 (예 : 텍스트 파일에 소스 코드를 작성하는 클래스 만들기 => class.vb).

+0

네, 기본적으로 그걸하고 싶습니다. 내 질문에는 이제 더 정교한 예제가 포함되어 있습니다. – Alex