Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 21356|Yanıt: 1

[Kaynak] IoC verimli Autofac

[Bağlantıyı kopyala]
Yayınlandı 13.09.2016 13:14:12 | | |
IoC ~ Verimli Autofac

Microsoft'un favori IoC konteyneri spring.net unity değil, Autofac olduğu şüphesizdir; çünkü verimliliği ve sadeliği nedeniyle, bu yüzden Microsoft liderliğindeki bahçe projelerinde de kullanılır

Autofac kullanımını gösterir.


Şimdi şöyle diyelim:

Bir sonraki derste, bahçe projeleri için özel projelerde Autofac'ın kullanımından bahsedeceğim.

Şimdi yaşam döngüsüne bakın

1、InstancePerDependency

Her bağımlılık veya çağrı için yeni bir benzersiz örnek oluşturun. Bu aynı zamanda örnekler oluşturmanın varsayılan yoludur.

Resmi dokümantasyon şöyle açıklar: Bileşeni, Resolve()'ye bağlı her bağımlı bileşen veya çağrı yeni, benzersiz bir örnek (varsayılan) alacak şekilde yapılandırın.

2、InstancePerLifetimeScope

Bir yaşam döngüsü alanında, her bağımlılık veya çağrı tek bir paylaşılan örnek oluşturur ve her farklı yaşam döngüsü alanı için örnek benzersizdir ve paylaşılmaz.

Resmi dokümantasyon şöyle açıklar: Bileşeni, tek bir ILifetimeScope içindeki her bağımlı bileşen veya Resolve()'ye yapılan çağrı aynı paylaşılan örnek alacak şekilde yapılandırın. Farklı yaşam süreli alanlardaki bağımlı bileşenler farklı örnekler alır.

3、InstancePerMatchingLifetimeScope

Tanımlanmış bir yaşam döngüsü alanında, her bağımlılık veya çağrı tek bir paylaşılan örnek oluşturur. Ana alandaki örnekler, tanımlanan yaşam döngüsü alanının alt kimlik alanında paylaşılabilir. Tüm miras hiyerarşisinde tanımlanmış bir yaşam döngüsü alanı bulunmazsa, bir istisna atılır: DependencyResolutionException.

Resmi dokümantasyon şöyle açıklar: Bileşeni, ILifetimeScope içindeki her bağımlı bileşen veya Resolve()'ye yapılan çağrının sağlanan etiketlerden herhangi birine sahip değer ile etiketlenmiş şekilde aynı paylaşılan örnek almasını sağlayacak şekilde yapılandırmak. Etiketlenmiş kapsamın çocukları olan ömür boyu kapsamlardaki bağımlı bileşenler, ebeveynin örneğini paylaşacaktır. Hiyerarşide uygun şekilde etiketlenmiş bir kapsam bulunamazsa, DependencyResolutionException atılır.

4、InstancePerOwned

Bir yaşam döngüsü alanında sahip olunan bir örnek tarafından oluşturulan bir örnekin yaşam döngüsünde, her bağımlı bileşen veya Resolve() yöntemine yapılan çağrı, tek bir paylaşılan örnek oluşturur ve çocuk yaşam döngüsü alanı, ana yaşam döngüsü alanındaki örnekleri paylaşır. Miras hiyerarşisinde uygun bir yaşam döngüsü alanı ve çocuk örnekleri bulunmazsa, bir istisna atılır: DependencyResolutionException.

Resmi belgeler şöyle açıklıyor:

Bileşeni, sahip olduğu bir örnek tarafından oluşturulan ILifetimeScope içindeki her bağımlı bileşen veya Resolve() çağrısının aynı paylaşılan örnek almasını sağlayacak şekilde yapılandırın. Yaşam boyu kapsamlardaki ve sahip olunan örnek kapsamının çocukları olan bağımlı bileşenler, ebeveynin örneğini paylaşır. Hiyerarşide uygun bir sahip olunan örnek kapsamı bulunamazsa DependencyResolutionException atılır.

5、SingleInstance

Her bir bileşene güvendiğinizde veya Resolve() yöntemini çağırdığınızda, aynı paylaşılan örnek elde edilir. Aslında, bu tek kişilik bir modeldir.

Resmi dokümantasyon şöyle açıklar: Bileşeni, Resolve()'ye bağlı her bağımlı bileşen veya çağrının aynı, paylaşılan örnek alması için yapılandırın.

6、InstancePerHttpRequest

Bir Http talebi bağlamında, bir bileşenin örneğini paylaşın. Sadece asp.net MVC geliştirme için mevcut.





Önceki:MVC'nin Eylem Sonucu
Önümüzdeki:Eşzamanlı Sözlük vs. Sözlük+Kilitleme - Dennis Gao
 Ev sahibi| Yayınlandı 13.09.2016 13:15:50 |
Nuget kurulum yöntemi:

Autofac kur

Install-Package Autofac
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com