Dependency Injection
Bağımlılık Enjeksiyonu
bağla servis ve yaşam süreleri.
bağla servis/db kapsayıcıdan çözer; bağla ayar yapılandırmadan üretir. Servis ömürleri: kapsamlı, tekil, geçici.
İlgili konular
Referans
Bu sayfa 2 katalog öğesini kapsar. Aşağıdaki maddeler language-spec, örnekler ve katalog alanlarından üretilmiştir.
'servis' ömürleri
Nedir?
servis Tip : ömür. Ömürler: kapsamlı (kapsam başına bir), tekil (süreç başına bir), geçici (her çözümlemede yeni). Ömür yazılmazsa veya geçersizse US0858; varsayılan ömür yoktur. Gövde sınıf gövdesiyle aynı; varsayılan üye görünürlüğü özel.
Sözdizimi
us
servis KullanıcıServisi : kapsamlı { }servis X : tekil { }servis Y : geçici { }Basit örnek
usana.us
servis Kutu : kapsamlı { genel fonksiyon ad(): metin => "tamam"}bağla servis: Kutusyaz "{servis.ad()}"Çıktı
tamam
Dikkat edilmesi gerekenler
- Tek
oluştur; birden fazla US0860. tekil→kapsamlıbağımlılık US0861.- Döngü US1546; kayıtsız tip US1544; kapanmış kapsam US1545.
- Arayüz adı iki noktanın sağında yazılmaz; kayıt somut tipin kendisidir.
'bağla servis' / 'bağla db'
Nedir?
bağla servis ve bağla db kapsayıcıdan çözer; çözülen örnek servis / db adlı değişkene yazılır. Bu @ değildir ve kurucu çağırmaz. bağla, @ ve al birbirinin yerine geçmez.
Sözdizimi
us
bağla servis: KullanıcıServisibağla db: UygulamaDbBasit örnek
usana.us
bağla servis: KullanıcıServisibağla db: UygulamaDbGeçersiz örnek
us
bağla log: ...spec: bağla log derlenmez → US0804
Tanı
US0804
Dikkat edilmesi gerekenler
- Aynı tip için iki kayıt US0859 (son kayıt kazanmaz).
- Kayıtsız tip runtime US1544.
@kapsayıcı sayacını artırmaz.