Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ninject 
:(
    Опции темы
Felix12321
Дата 9.9.2012, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.9.2012

Репутация: нет
Всего: -1



Здравствуйте!
Никак не пойму как задействовать этот DI. Приаттачил пример. В нём я управляю зависимостью со сборки, в которой находится класс с DI. Но я хочу управлять зависимостью с основной сборки «MainApp», или в случае тестирования со сборки, в которой будет написан тест. Как это решается в Ninject? 
Спасибо.

Добавлено через 9 минут и 46 секунд
Не получилось приаттачить, слишком большой размер. Загрузил на яндекс http://narod.ru/disk/60729882001.6e2ce7a66...ainApp.zip.html
PM MAIL   Вверх
Felix12321
Дата 9.9.2012, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.9.2012

Репутация: нет
Всего: -1



На всякий случай приведу код здесь
Приложение MainApp
Код

public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            var someObject = new SomeClass();
            textBox2.Text = someObject.Foo(textBox1.Text);
        }
    }


Сборка Abstracts
Код

public interface IMyService
    {
        string Foo(string text);
    }


Сборка SomeAssambly
Код

internal class MyService1 : IMyService
    {
        #region Implementation of IMyService

        public string Foo(string text)
        {
            return string.Format("MyService1: {0}", text);
        }

        #endregion
    }
internal class MyService2 : IMyService
    {
        #region Implementation of IMyService

        public string Foo(string text)
        {
            return string.Format("MyService2: {0}", text);
        }

        #endregion
    }
public class NinjectFactory
    {
        public static IKernel CreateKernel()
        {
            var kernel = new StandardKernel();
            kernel.Bind<IMyService>().To<MyService2>();
            return kernel;
        }
    }
public class SomeClass
    {
        private readonly IMyService _myService;

        public SomeClass()
        {
            _myService = NinjectFactory.CreateKernel().Get<IMyService>();
        }

        public string Foo(string text)
        {
            return _myService.Foo(text);
        }
    }

PM MAIL   Вверх
Felix12321
Дата 15.9.2012, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.9.2012

Репутация: нет
Всего: -1



Никто не пользуется Ninject? Или я пытаюсь использовать его не стандартным способом?
Если не трудно, опишите, пожалуйста, как вы решаете подобную задачу со своим DI?
PM MAIL   Вверх
dima733
Дата 16.9.2012, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 7.4.2008

Репутация: нет
Всего: нет



Привет,

Ninject не пользовался, пользуюсь MEF посмотри Линки:

http://stefanhenneken.wordpress.com/2011/0...ts-und-exports/
http://code-inside.de/blog/2008/11/19/howt...-mef-hello-mef/

хоть и по немецки но можно по коду понять что к чему




PM MAIL   Вверх
Felix12321
Дата 16.9.2012, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.9.2012

Репутация: нет
Всего: -1



Я частично знаком с MEF. Но я или не внимательно смотрел, или вы меня не правильно поняли. Как MEF в данных примерах решает мою задачу?
Цитата

Но я хочу управлять зависимостью с основной сборки «MainApp», или в случае тестирования со сборки, в которой будет написан тест.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0415 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.