Aşağıdaki senaryoda döngüsel başvurunun nasıl önleneceğinden emin değilim. Sorun, dairesel referans nedeniyle yığın akışdır. Bunu çözmek için Lazy veya başka bir yaklaşımı nasıl kullanırım? Konteyneri heryerden de geçmek istemiyorum.Unity 4.0 C kullanırken Dairesel referans C#
0
A
cevap
1
Bunu yapabilirsin:
public class MySocket : ISender
{
[Dependency]
public Lazy<IVehicleManager> VehicleManager { get; set; }
public void Connect()
{
Console.WriteLine("MySocket: Connect");
VehicleManager.Value.AddActiveConnection();
}
}
Ancak genel olarak, sen dairesel bağımlılıkları önlemek için gayret
. Uygulama alanınızı bilmiyorum amaMySocket
'un
IVehicleManager
'a bağlı olduğunu garip buluyorum. Bağımlılığı tersine çevirmeyi denemelisiniz, ör.
ISender
'da bir etkinliği göstererek.
0
Öncelikli yol, MyVehicleManager ve MySocket'ın türetildiği bir süper sınıf oluşturmaktır. Ya da önerdiğin gibi ya da bir fabrikayı tembelleştir.
Tembel'i denedim ancak ISender her zaman MyVehicleManager'da boştur. Lazy'i düzgün veya facotry'yi nasıl kullanırım. Hiç bir fikrim yok. – pats