3 farklı projeye sahip bir .NET Core (UWP çözümü) uygulamasına sahibim (A, B ve C olarak adlandırın).Bir .NET çözümü içindeki projeler arasında nasıl iletişim kurabilirim?
A ve B, Windows Çalışma Zamanı Bileşenleri ve C basit bir Sınıf Kitaplığıdır.
Projeler A ve B projeye bir başvuru C
I örnek daha düşünce proje A ve B arasında paylaşılabilir olur proje C, bir sınıf erişmek isteyen.NET 4
Tembel yöntemini kullanarak tek bir kalıp modeline (tabii ki) sorun, örneğin A ve B projelerinin her defasında örneğe erişmesi örneğinin aynı olmamasıdır. Lazy yöntemi, daha önce oluşturulmamış gibi göründüğü için sınıfın yeni bir örneğini oluşturur. Bir çözümün farklı projeleri arasında bir singleton paylaşabilir miyim acaba. Bir projenin bir süreçle ilişkili olduğunu okudum ve her işlemin paylaşılamayacak kendi bellek alanı var. Sorunumun çözümü var mı?
DÜZENLEME: Bu kale Windsor, Ninject, AutoFac veya birlik gibi araçlar kullanılarak farklı derlemeler genelinde singleton'ununu paylaşmak mümkündür Ayrıca
private static readonly Lazy<HubService> Lazy =
new Lazy<HubService>(() => new HubService(), LazyThreadSafetyMode.ExecutionAndPublication);
private HubService()
{
_asyncQueue = new AsyncQueue<Guid>();
}
public static HubService Instance => Lazy.Value;
: İşte benim HubService sınıfının benim uygulaması var?
Tektonik uygulamanızın yanı sıra hem A hem de B'de kullanma şeklinizi görmemiz gerekiyor. – Glubus
Aynı örnek değil, bu yüzden yapamazsınız. Proje C montajınız A ve B'ye ayrı olarak yüklenir ve sadece 2 işlem arasındaki belleği sihirli bir şekilde paylaşmaz. – LibertyLocked
Sınıf başlatmanızın statik mühürlü tekil bir uygulamasını yapın. Bu, tembel başlatma işleminize erişen birden çok ileti dizisini engeller. – Maertin