https://celery94.github.io/posts/025-iservicecollection-in-c---a-simplified-beginners-guide_cn/