همان طور که میتوان از ظاهر این خط کد حدس زد، موضوع مربوط میشود به Inversion of Control با استفاده از Castle Windsor. مفهوم IoC ارتباط تنگانگی با Dependency Injection (همان DI) دارد. این دو مفهوم به طور خلاصه design patternهایی هستند که با کاهش وابستگی بین اجزا مختلف نرمافزار و اتوماتیک کردن روال instance گیریهای طولانی از کلاسها و interfaceهای مختلف به تولید نرمافزارهایی که تست و نگهداری راحتتری دارند کمک میکند.
به عنوان مثال فرض کنید کلاسی به اسم HtmlTitleRetriever دارید که constructor آن به دو اینترفیس IFileDownloader و ITitleScraper نیاز دارد. روش instance گرفتن از کلاس HtmlTitleRetriever بدون استفاده از IoC به شکل زیر است:
ITitleScraper scraper = new StringParsingTitleScraper();
HtmlTitleRetriever retriever = new HtmlTitleRetriever(downloader, scraper);
پ.ن.: این نوشته در واقع خلاصهای از مطلب «Inversion of Control and Dependency Injection with Castle Windsor Container – Part I» میباشد.