[C#] 10.6 모듈 작성

이번에는 .NET 어셈블리의 부속이 될 수 있는 모듈을 작성하는 방법울 알아봅시다. 그리고 모듈을 포함하는 .NET 어셈블리도 만들어 봅시다.

모듈은 Visual Studio 명령 프롬프트에서 csc 명령어를 이용하여 컴파일해야 합니다. 먼저 간단한 소스 코드를 편집한 후에 모듈을 만듭시다.

namespace DemoModule
{
    public class Foo
    {
        public string Name
        {
            get;
            private set;
        }
        public Foo(string name)
        {
            Name = name;
        }
        public override string ToString()
        {
            return Name;
        }
    }
}

그리고 Visual Studio 명령 프롬프트에서 csc /t:module Foo.cs를 입력하면 모듈이 만들어집니다.

csc 커맨드로 모듈 만들기
[그림 10.12] csc 커맨드로 모듈 만들기

 이처럼 만들어진 모듈은 .NET 어셈블리의 부속이 될 수 있습니다. 따라서 하나의 모듈을 포함하는 두 개의 .NET 어셈블리를 참조하면 충돌납니다. 모듈은 .NET 어셈블리가 아니라 .NET 어셈블리에 포함될 수 있는 부속임에 주의하세요.

간단하게 모듈을 포함하는 라이브러리 코드도 편집합시다.

using System;
using DemoModule;
namespace MyLib
{
    public class IncludeModule
    {
        public void UsingModule()
        {
            Foo foo = new Foo("테스트");
            Console.WriteLine(foo);
        }
    }
}

마찬가지로 Visual Studio 명령 프롬프트에서 csc 명령어를 이용하여 모듈을 포함하는 라이브러리를 제작합시다. csc /t:library /addmodule:Foo.netmodule MyLib.cs라고 입력하세요.

csc 커맨드로 라이브러리 만들기
[그림 10.13] csc 커맨드로 라이브러리 만들기

 이처럼 다른 모듈을 포함하고 있는 .NET 어셈블리를 다중 파일 어셈블리라 얘기합니다. Microsoft 사에서는 기존 COM 전략이 실패하였다는 의미에서 .NET을 만들었습니다.

많은 부분에서 변화가 있지만 그중에서도 자기 기술적인 .NET 어셈블리, 강력한 이름으로 공용 어셈블리 배포와 이로써 병행(Side by Side) 실행, 간단한 접근 지정만으로도 외부에서 접근 가능한 형식과 멤버를 지정, XML 문서 출력으로 인텔리센스 기능을 활용할 수 있게 한 점은 많은 개발자가 효과적으로 비지니스 프로젝트를 수행할 수 있게 해 줍니다.