هل تقدم Caliburn وسيلة للحصول على إشارة إلى الحاوية من أي مكان؟

StackOverflow https://stackoverflow.com/questions/1048434

سؤال

وأنا العبث حاليا حولها مع إطار 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>();

وعلى أمل أن يساعد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top