동기


저는 사실 C#개발 경력이 짧습니다. 그래도 요즘 재미가 들려서 이것저것 보고있는데 문득 드는 생각이.. 이런것들을 쓰는 것도 중요하지만 이런 기능들을 내가 구현을 못하면 내것이 아니라는 생각이 들더군요 늦었지만 조금씩 나만의 MVVM라이브러리를 만들어보면서 기회가 된다면 다른 라이브러리에는 없는 서비스나 감초같은 기능을 넣어보고자 합니다.

주변 지인분들 말을 들어보면 IOC컨테이너 종류도 다양하다고 들었는데 많은 것들을 접하진 못했고… 제가 개발할때 주로 사용하는 IOC 컨테이너는 Microsoft Extensions DependencyInjection 입니다 제가 구현하고자하는 대부분의 IOC의 기능은 Microsoft Extensions DependencyInjection과 닮아있습니다.

소스코드 Github


https://github.com/gellston/ConvMVVM

구현하고자 하는 기능


  1. Cache객체와 NoneCache객체 등록 (Singleton, Transient)
  2. Interface와 같이 객체를 등록
  3. 생성자 주입
  4. 미리 생성한 객체를 등록
  5. 람다를 이용한 객체 생성 루틴 등록

참고 자료


Carlos Blanco님의 포스트를 참고 했습니다.

Writing a Minimal IoC Container in C#

고려하지 않은 사항 및 한계