هل تقدم Caliburn وسيلة للحصول على إشارة إلى الحاوية من أي مكان؟
-
20-08-2019 - |
سؤال
وأنا العبث حاليا حولها مع إطار Caliburn روب أيزنبرغ و. عند النظر في الوثائق التي يتم توفيرها في http://caliburn.codeplex.com هناك مثال عن كيفية لحل خدمة Caliburn من الحاوية.
وهذا شيء على غرار ما يلي:
SimpleContainer container = new SimpleContainer();
CaliburnFramework
.ConfigureCore(container)
.WithCommonDialogs()
.WithPresentationFramework()
.Start();
var service = container.GetInstance(typeof (IService)) as Service;
ولكن ما أنا في عداد المفقودين هو وسيلة للحصول على إشارة إلى الحاوية في أي مكان في التطبيق. مثل هذا:
var service = Caliburn.Container.GetInstance(typeof(IService))as Service;
هل يجب علي أن بناء طبقة ثابتة مخصصة الذي يحمل إشارة إلى الحاوية أو هناك شيء بنيت بالفعل في Caliburn؟
وشكرا مقدما وأطيب التحيات!
المحلول
وأحدث نسخة جذع Caliburn تلقائيا تسجل حاوية عند بدء التشغيل إطار باعتباره محدد الخدمة. عليك أن ترجع Microsoft.Practices.ServiceLocation
على التعليمات البرمجية ومن ثم يطلب من ServiceLocator
لمثيل الخدمة الخاص بك.
var service = ServiceLocator.Current.GetInstance<IService>();
وعلى أمل أن يساعد.
لا تنتمي إلى StackOverflow