728x90
728x170
▶ Program.cs
using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.IO;
using System.Reflection;
namespace TestProject
{
/// <summary>
/// 프로그램
/// </summary>
class Program
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Static
//////////////////////////////////////////////////////////////////////////////// Private
#region 프로그램 시작하기 - Main()
/// <summary>
/// 프로그램 시작하기
/// </summary>
private static void Main()
{
CodeCompileUnit codeCompileUnit = new CodeCompileUnit();
CodeNamespace codeNamespace = new CodeNamespace("TestProject");
CodeNamespaceImport systemCodeNamespaceImport = new CodeNamespaceImport("System");
CodeTypeDeclaration programCodeTypeDeclaration = new CodeTypeDeclaration("Program")
{
IsClass = true,
TypeAttributes = TypeAttributes.Public | TypeAttributes.Sealed
};
codeNamespace.Imports.Add(systemCodeNamespaceImport);
codeCompileUnit.Namespaces.Add(codeNamespace);
codeNamespace.Types.Add(programCodeTypeDeclaration);
CodeEntryPointMethod codeEntryPointMethod = new CodeEntryPointMethod();
CodeTypeReferenceExpression systemConsoleCodeTypeReferenceExpression = new CodeTypeReferenceExpression("System.Console");
CodeMethodInvokeExpression codeMethodInvokeExpression = new CodeMethodInvokeExpression
(
systemConsoleCodeTypeReferenceExpression,
"WriteLine",
new CodePrimitiveExpression("Hello World!")
);
codeEntryPointMethod.Statements.Add(codeMethodInvokeExpression);
programCodeTypeDeclaration.Members.Add(codeEntryPointMethod);
CodeDomProvider codeDomProvider = CodeDomProvider.CreateProvider("CSharp");
CodeGeneratorOptions codeGeneratorOptions = new CodeGeneratorOptions { BracingStyle = "C" };
using(StreamWriter writer = new StreamWriter("HelloWorld.cs"))
{
codeDomProvider.GenerateCodeFromCompileUnit(codeCompileUnit, writer, codeGeneratorOptions);
}
Console.WriteLine(File.ReadAllText("HelloWorld.cs"));
Console.Write("\n프로그램을 종료하기 위해서 아무 키나 눌러 주시기 바랍니다.");
Console.ReadKey(true);
}
#endregion
}
}
728x90
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] PerformanceCounter 클래스 사용하기 (0) | 2018.05.09 |
---|---|
[C#/COMMON] 거리 구하기 (0) | 2018.05.09 |
[C#/COMMON] 너비 우선 탐색을 사용해 최단 경로 구하기 (0) | 2018.04.28 |
[C#/COMMON] 너비 우선 탐색하기 (Breadth-First Search) (0) | 2018.04.28 |
[C#/COMMON] 깊이 우선 탐색하기 (Depth-First Search) (0) | 2018.04.28 |
[C#/COMMON] CodeDomProvider 클래스 : 런타임에서 C# 코드를 동적으로 컴파일하고 DLL 파일 생성하기 (0) | 2018.04.26 |
[C#/COMMON] CSharpCompilation 클래스 : 런타임에서 C# 코드를 동적으로 컴파일하기 (0) | 2018.04.26 |
[C#/COMMON] Stream 클래스 : 스로틀(Throttle) 스트림 만들기 (0) | 2018.04.09 |
[C#/COMMON] 특정 파일을 사용하는 프로세스 리스트 구하기 (0) | 2018.03.29 |
[C#/COMMON] 사용자 계정 변경하기 (0) | 2018.03.24 |