نام در حال استفاده

ساخت وبلاگ

یک برچسب در حال حاضر با نام شاخه ارائه شده وجود دارد. بسیاری از دستورات GIT نام برچسب و شاخه را می پذیرند ، بنابراین ایجاد این شاخه ممکن است باعث رفتار غیر منتظره شود. آیا مطمئن هستید که می خواهید این شاخه را ایجاد کنید؟

WINDSOR / DOCS / ثبت نام-مؤلفه ها-یک توسط یک. md

  • به پرونده T بروید
  • به خط L بروید
  • مسیر کپی کردن
  • کپی کردن پیوند ثابت

این تعهد متعلق به هیچ شعبه ای در این مخزن نیست و ممکن است متعلق به یک چنگال در خارج از مخزن باشد.

 

  • با دسک تاپ باز کنید
  • مشاهده خام
  • کپی کردن محتوای خام کپی محتوای خام

     

محتوای خام را کپی کنید

محتوای خام را کپی کنید

ثبت اجزای یک به یک

نمونه های اولیه ثبت نام

نقطه شروع برای ثبت هر چیزی در کانتینر ، روش ثبت کانتینر است که دارای یک یا چند اشیاء iregistration به عنوان پارامتر است. ساده ترین راه برای ایجاد آن اشیاء استفاده از استاتیک قلعه. microkeel. registration.component است. آن برای روش یک مؤلفه ثبت نام را برمی گرداند که می توانید برای پیکربندی بیشتر ثبت نام از آن استفاده کنید.

ℹ کد ثبت نام خود را جدا کنید: این یک عمل توصیه شده برای نگه داشتن کد ثبت نام در یک کلاس اختصاصی (ES) اجرای iWindsorinstaller است.

ℹ ابتدا اجزای زیرساختی را نصب کنید: برخی از مؤلفه ها ممکن است به یک تسهیلات یا پسوند دیگر به ظرف اصلی نیاز داشته باشند تا به درستی ثبت شود. به این ترتیب توصیه می شود قبل از شروع ثبت نام اجزای خود ، همیشه امکانات ، زیر سیستم های سفارشی ، مشارکت کنندگان تولید مدل و غیره را ثبت کنید.

برای ثبت یک نوع در ظرف

با این کار MyServiceImpl به عنوان سرویس MyServiceImpl با سبک زندگی پیش فرض (Singleton) ثبت می شود.

برای ثبت نوع به عنوان سرویس غیر پیش فرض

توجه داشته باشید که برای و اجرای آن نیز دارای اضافه بار غیر ژنتیکی است.

ℹ خدمات و مؤلفه ها: می توانید اطلاعات بیشتری در مورد خدمات و مؤلفه ها در اینجا بیابید.

برای ثبت یک نوع عمومی

فرض کنید شما یک رابط iRepository دارید ، با NHRepository به عنوان اجرای.

شما می توانید یک مخزن برای هر کلاس نهاد ثبت کنید ، اما این مورد نیاز نیست.

یک اریپوسیتوری<>(به اصطلاح نوع عمومی باز) ثبت نام ، بدون مشخص کردن نهاد ، کافی است.

انجام این کار مانند این قانونی نیست و کد فوق کامپایل نمی شود. در عوض شما باید از TypeOF () استفاده کنید

پیکربندی سبک زندگی مؤلفه

هنگامی که سبک زندگی صریح تنظیم نشده باشد ، از سبک زندگی پیش فرض Singleton استفاده می شود.

مؤلفه های بیشتری را برای همان سرویس ثبت کنید

شما می توانید این کار را به سادگی با ثبت نام های بیشتر برای همان سرویس انجام دهید.

هنگامی که یک مؤلفه به iMyservice وابستگی دارد ، به طور پیش فرض ImyService را که ابتدا ثبت شده است دریافت می کند (در این مورد MyServiceImpl).

ℹ در Windsor First یک برنده: در قلعه ، اجرای پیش فرض برای یک سرویس اولین اجرای ثبت شده است. این به عنوان مثال با AutoFAC متفاوت است ، جایی که پیش فرض آخرین اجرای ثبت شده است (http://code. google.com/p/autofac/wiki/componentcreation).

شما می توانید مؤلفه ثبت شده بعدی را وادار کنید تا از طریق روش ISDEFAULT به عنوان نمونه پیش فرض تبدیل شوند.

در مثال بالا ، هر مؤلفه ای که به Imyservice وابسته باشد ، به طور پیش فرض نمونه ای از دیگران را دریافت می کند ، حتی اگر بعداً ثبت شد.

البته ، شما می توانید از کدام اجرای توسط یک مؤلفه که به آن نیاز دارد ، نادیده بگیرید. این کار با غلبه بر سرویس انجام می شود.

هنگامی که به صراحت با کانتینر تماس می گیرید. RESOLVE () (بدون مشخص کردن نام) ، ظرف نیز اولین مؤلفه ثبت شده را برای iMyservice (MyServiceImpl در مثال بالا) باز می گرداند.

ℹ نام های منحصر به فردی را برای مؤلفه های تکراری ارائه دهید: اگر می خواهید بیش از یک بار همان اجرای را ثبت کنید ، حتماً نامهای مختلفی را برای مؤلفه های ثبت شده ارائه دهید.

نمونه موجود را ثبت کنید

ثبت یک شی موجود به عنوان یک سرویس امکان پذیر است.

⚠ ثبت نام نمونه زندگی را نادیده می گیرد: وقتی یک نمونه موجود را ثبت می کنید ، حتی اگر سبک زندگی را مشخص کنید ، نادیده گرفته می شود. همچنین به عنوان مثال ، نوع اجرای را برای شما تعیین می کند ، بنابراین اگر سعی کنید این کار را به صورت دستی انجام دهید ، یک استثناء پرتاب می شود.

با استفاده از یک نماینده به عنوان کارخانه مؤلفه

شما می توانید از یک نماینده به عنوان یک کارخانه سبک وزن برای یک مؤلفه استفاده کنید:

با استفاده از روش FectiveMethod دارای دو بار اضافه دیگر است که می تواند در صورت لزوم دسترسی به هسته و زمینه ایجاد را در اختیار شما قرار دهد.

نمونه ای از استفاده از FectiveMethod با اضافه بار هسته (مبدل)

علاوه بر استفاده از روش FactoryMethod ، یک روش استفاده وجود دارد.(بدون پسوند "روش" :-)). می توان آن را به عنوان یک نسخه خاص از روش استفاده از FectiveMethod در نظر گرفت ، که یک کارخانه موجود را از ظرف برطرف می کند و به شما امکان می دهد از آن برای ایجاد نمونه ای از خدمات خود استفاده کنید.

⚠ از استفاده از Factory خودداری کنید: توصیه می شود از استفاده از FactoryMethod استفاده کنید و هنگام ایجاد خدمات خود از طریق کارخانه ها از استفاده از Factory خودداری کنید. با استفاده از Fective در نسخه های بعدی منسوخ/حذف می شود.

قبل از استفاده ، گاهی اوقات لازم است که یا نمونه ایجاد شده را بازرسی یا اصلاح کنید. برای انجام این کار می توانید از روش OnCreate استفاده کنید

این روش دارای دو بار اضافه است. یکی که با یک نماینده کار می کند که یک نمونه Ikeel و تازه ایجاد شده به آن منتقل می شود. دیگری فقط نمونه تازه ایجاد شده را می گیرد.

ℹ OnCreate فقط برای مؤلفه های ایجاد شده توسط کانتینر کار می کند: این روش برای مؤلفه هایی که نمونه در خارج از کشور ارائه می شود فراخوانی نمی شود (مانند هنگام استفاده از روش نمونه). این فقط برای مؤلفه های ایجاد شده توسط کانتینر نامیده می شود. این همچنین شامل مؤلفه هایی است که از طریق برخی از امکانات (تسهیلات از راه دور ، تأسیسات پشتیبانی کارخانه) ایجاد شده است

برای مشخص کردن نامی برای مؤلفه

نام پیش فرض برای یک مؤلفه ثبت شده ، نام کامل از نوع اجرای است. می توانید با استفاده از روش نامگذاری شده () نام دیگری را مشخص کنید.

تهیه مؤلفه برای استفاده از وابستگی (سرویس نادیده گرفتن)

اگر یک مؤلفه به یک مؤلفه دیگر نیاز داشته باشد یا بخواهد ، این وابستگی نامیده می شود. هنگام ثبت نام ، می توانید صریحاً تنظیم کنید که از کدام مؤلفه استفاده کنید.

ثبت نام مؤلفه با چندین سرویس

استفاده از مؤلفه های منفرد برای بیش از یک سرویس امکان پذیر است. به عنوان مثال اگر شما یک کلاس فوبار دارید که هر دو رابط IFOO و IBAR را پیاده سازی می کند ، می توانید ظرف خود را پیکربندی کنید تا در صورت درخواست IFOO و IBAR همان سرویس را برگردانید. این توانایی را به عنوان نوع حمل و نقل نامیده می شود.

ساده ترین راه برای مشخص کردن حمل و نقل نوع استفاده از اضافه بار چند پارامتری از مؤلفه است. برای روش

حداکثر چهار سرویس ارسال شده بیش از حد وجود دارد که همیشه باید کافی باشد. اگر متوجه شدید که بیشتر به شما احتیاج دارید ، به احتمال زیاد اصل مسئولیت واحد را نقض می کنید ، و ممکن است بخواهید مؤلفه غول پیکر خود را به موارد بیشتری بپیوندید ، هرکدام فقط یک کار را انجام می دهند.

همچنین یک اضافه بار غیر ژنرال وجود دارد ، که در صورت نیاز به پشتیبانی از ژنرال های باز یا به هر دلیلی نمی توانید از نسخه عمومی استفاده کنید.

علاوه بر این ، شما می توانید از روش Forward استفاده کنید ، که رفتارهای یکسان و اضافه بار را برای روش در معرض دید قرار می دهد.

تأمین وابستگی های درون خطی

همه چیز نباید یک جزء در ویندزور باشد. برخی از مؤلفه ها به پارامترهایی مانند رشته های اتصال ، اندازه بافر و غیره نیاز دارند. شما می توانید این پارامترها را به عنوان وابستگی درون خطی ارائه دهید.

کتاب آموزش بورس...
ما را در سایت کتاب آموزش بورس دنبال می کنید

برچسب : نویسنده : محسن زنجانچی بازدید : <-PostHit-> تاريخ : دوشنبه 25 ارديبهشت 1402 ساعت: 12:40