در این قسمت در رابطه با Unity Container به عنوان یک فریمورک DI Container که در برنامههای .NET مورد استفاده قرار می گیرد و توسط مایکروسافت پشتیبانی میشود صحبت خواهیم کرد. Unity یک IoC Container سبک وزن و قابل گسترش است. کد مربوط به این فریمورک را میتوانید از لینک https://github.com/unitycontainer/unity دریافت کنید.
در این فریمورک قابلیت های زیادی وجود دارد که در رابطه با آنها در قسمت زیر به صورت تیتروار صحبت خواهیم کرد. روند ساده ی رجیستر کردن تایپ ها و اینترفیس های مختلف با استفاده از Type Mapping.
پشتیبانی کردند از روند Register کردن یک آبجکت از قبل موجود.
- پشتیبانی از Code-Base Registration و یا Register کردن مبتنی بر کد و همچنین Design Time Register و یا Register کردن در زمان طراحی.
- تزریق خودکار تایپ های رجیستر شده در زمان Run Time از طریق روشهای تزریق با تابع سازنده و یا Property و یا Method.
- پشتیبانی کردن از Deferred Resolution.
- پشتیبانی کردن از Container های تودرتو و یا اصطلاحاً Nested Container ها. خارج شدن اشیا و یا Dispose شدن آنها به صورت خودکار بر اساس Life-Time آنها.
- مدیر Life-Time و یا Life-Time Manager موجود در Unity از الگوهایی از قبیل Hierarchical و Per Resolve و Externally Controlled و Per Request و Per thread استفاده میکند.
- پشتیبانی کردن از قابلیت Service Location که به Client ها اجازه می دهد تا Container را ذخیره و یا Cache کنند.
- پشتیبانی از مفاهیم تایپ Type Interception و .Instance Interception
- قابل گسترش بودن.
قبل از شروع به کار با فریمورک IoC Container مربوط به مایکروسافت با نام Unity بهتر است که نحوه نصب کردن آن را ببینیم.
پرووید: مرکز آموزش تخصصی برنامه نویسی و توسعه نرم افزار