Morris.Moxy - C#용 믹스인 코드 생성기 라이브러리

Morris.Moxy는 C#에 Mixin 기능을 코드 생성기를 활용해 부여합니다. 믹스인은 클래스에 일부 기능을 주입할 수 있는 기능입니다. C#은 믹스인 기능이 없다가 C# 8의 인터페이스 기본 메서드를 통해 부분 지원합니다.

다음은 예시 코드 입니다.

| PersonName.mixin

@moxy
@attribute required int DefaultAge
@moxy

namespace {{ moxy.Class.Namespace }};

partial class {{ moxy.Class.Name}}
{
	public string FullName => $"{GivenName} {FamilyName}";
	public string GivenName { get; set; }
	public string FamilyName { get; set; }
	public int Age { get; set; } = {{ DefaultAge }};
}

| 믹스인 적용

    [PersonName(DefaultAge: 42)]
    public partial class TestPerson { }

| 사용

var testPerson = new TestPerson();
Console.WriteLine(testPerson.Age);

| 출력

42

partial을 이용해 자연스럽게 클래스와 기능을 결합할 수 있으며 인터페이스 및 적절한 제네릭 형식 제약 조건(where)를 사용해서 기능을 일반화 시킨 믹스인도 가능할 것 같아 흥미로운 라이브러리 인 것 같습니다.


4개의 좋아요

호오 믹스인 용 라이브러리라니 이런 것도 있었군요…ㅋㅋ

2개의 좋아요

mixin은 trait이 아닌 interface로 구현해서 너무 안타까운… 올바르게 고칠 기회를 놓친

3개의 좋아요

인상적인 자료 감사합니다.

2개의 좋아요