ASP.NET WebForm'da Ninject ve Log4net Konfigürasyonu
Selamlar,
WebForm kullanan büyük büyük siteler olduğunu biliyoruz. malum hemen teknoloji değişmiyor. Ancak önyüz eski de kalsa teknolojinizi geliştirmeniz gerekiyor. Ninject kullanmanız için MVC'deki yapı değil, burada Ninject.Web kütüphanesi yapılandırılıyor.
Önce Nuget Paket Yöneticisi'nden Ninject ve Ninject.Web'i yüklüyoruz.
Install-Package Ninject.Web
Web Application katmanınıza App_Start isminde klasör gelmiştir. Burada NinjectWeb.cs ve NinjectWebCommon.cs sınıflarımız var. Ninject'in uygulama yönetimi burada geliştiriliyor. Abstracts ve Conceretes sınıflarımızın var olduğunu kabul edelim. NinjectWebCommon.cs'i açın ve private static void RegisterServices(IKernel kernel) metoduna Bind işlemlerinizi yapın.
Bu şekilde:
kernel.Bind
kernel.Bind
Log4net'in ise CreateKernel() metodu altına şu şekilde bind olması gerekiyor:
kernel.Bind
Start metodu altında Log4net'i başlatmak için şunu eklemeniz gerekiyor:
XmlConfigurator.Configure();
Buraya kadar olan yapıda, Ninject kurulumu ve bind işlemlerimizi tamamladık. Sıradaki adım olarak sayfalarımıza entegre edeceğiz. Tüm .aspx sayfalarda Ninject.Web.PageBase inherit olmalıdır. Yani bir tane BasePage isminde bir class oluşturup Ninject.Web.PageBase'i bağlayabilirsiniz. Çünkü uygulamayı buradan yöneteceğiz.
public partial class BasePage : Ninject . Web .PageBase {
IOC'u bir attribute ile kullanacağız. Bir servis kullanımı için örnek:
[Inject]
public IProductService ProductService{get;set; }
Burada get ve set işlemi olmadığı takdirde null değer alacaktır.
Örnek sınıf:
public partial class Product: BasePage
{
[Inject]
public IProductService ProductService { get; set; }
[Inject] public ILog Log { get; set; }
}
UserControl için Ninject.Web.UserControlBase, MasterPage için Ninject.Web.MasterPageBase inherit olmalıdır.
Bu kadar! Dilediğiniz gibi uygulamanızı yönetebilirsiniz.
İyi çalışmalar,
Bu gönderiyi 12.07.2019 11:09:00 tarihinde Rserit düzenledi.