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

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

[Kaynak] Autofac oluşturma örneği metodolojisinin özeti

[Bağlantıyı kopyala]
Yayınlandı 5.01.2018 21:25:48 | | |

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 dokümantasyon şöyle açıklar: Bileşeni, sahip bir örnek tarafından oluşturulan ILifetimeScope içindeki her bağımlı bileşen veya Resolve()'ye yapılan çağrının aynı, paylaşılan örneği alması için 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.
Resmi dokümantasyon şöyle açıklar: Bileşenin bir örneğini tek bir HTTP talebi bağlamında paylaşın.
Resmi dokümantasyon bağlantısı: http://autofaccn.readthedocs.io/en/latest/lifetime/instance-scope.html




Önceki:asp.net Site dizin dosyası boş alın
Önümüzdeki:GeckoFx Firefox çekirdeği değişimi, sistem açılır uyarısını devre dışı bırak
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