Гость
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ninject / 10 сообщений из 10, страница 1 из 1
25.12.2018, 15:13
    #39752843
Stilet
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ninject
Добрый день.

Учусь C# MVC по урокам https://professorweb.ru/my/ASP_NET/mvc/level2/2_3.php

наткнулся на ситуацию, что компилятор дает ошибку, что не может преобразовать интерфейс в класс в строке ShoppingCart cart = new ShoppingCart(calc)

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
        public HomeController(IValueCalculator calcParam)
        {
            calc = calcParam;
        }

        public ActionResult Index()
        {
            ShoppingCart cart = new ShoppingCart(calc)
            {
                Products = products
            };
            decimal totalValue = cart.CalculateProductTotal();
            return View(totalValue);
        }


конструктор ShoppingCart принимает на вход класс, реализующий интерфейс IValueCalculator
Код: c#
1.
2.
3.
public ShoppingCart(LinqValueCalculator calcParam)

    public class LinqValueCalculator : IValueCalculator


Модератор: Учимся использовать тэги оформления кода - FAQ

в чем причина ?
...
Рейтинг: 0 / 0
25.12.2018, 16:01
    #39752889
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ninject
Тебе было лень оформит код нормально, 90% читающим этот вопрос будет лень на него отвечать.
Ninject тут вообще никаким боком не заехало.
...
Рейтинг: 0 / 0
25.12.2018, 16:21
    #39752910
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ninject
Stiletонструктор ShoppingCart принимает на вход класс, реализующий интерфейс IValueCalculator констуктор у тебя принимает класс LinqValueCalculator, а ты ему пытаешься подсунуть на вход IValueCalculator. Можно, конечно, применить явное приведение, но это неправильно. Правильно - изменить конструктор, чтобы он принимал IValueCalculator
...
Рейтинг: 0 / 0
25.12.2018, 19:27
    #39753050
Stilet
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ninject
Shocker.ProStiletонструктор ShoppingCart принимает на вход класс, реализующий интерфейс IValueCalculator констуктор у тебя принимает класс LinqValueCalculator, а ты ему пытаешься подсунуть на вход IValueCalculator. Можно, конечно, применить явное приведение, но это неправильно. Правильно - изменить конструктор, чтобы он принимал IValueCalculator
Я это понимаю, но именно в том и идея, чтоб уйти от конкретной реализации класса
...
Рейтинг: 0 / 0
26.12.2018, 09:26
    #39753227
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ninject
Интерфейсы как раз ровно для того и предназначены, чтобы уйти от конкретной реализации класса.
...
Рейтинг: 0 / 0
26.12.2018, 11:33
    #39753322
Stilet
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ninject
Shocker.ProИнтерфейсы как раз ровно для того и предназначены, чтобы уйти от конкретной реализации класса.

Возможно я разобрался, проблема в том что в рассматриваем мной примере используется библиотека для MVC3, а у меня студия 2015 и MVC5.

ошибка скорее всего возникает из за не корректной работы распознователя зависимостей ninject.

рекомендую разобраться со статьей в указанной мной ссылке.
попробую перевести на MVC5 и отпишусь.
...
Рейтинг: 0 / 0
26.12.2018, 16:49
    #39753523
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ninject
Stiletрекомендую разобраться со статьей в указанной мной ссылке.это вы кому рекомендуете?

Stiletпопробую перевести на MVC5 и отпишусь.Язык C# никак не изменится от смены используемого фреймворка.
Рекомендую разобраться с основами C#
...
Рейтинг: 0 / 0
29.12.2018, 12:49
    #39754877
Stilet
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ninject
Да я же не со зла, просто предложил прочитать статью. А с основами я как раз стараюсь разобраться.
...
Рейтинг: 0 / 0
30.12.2018, 00:15
    #39755096
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ninject
StiletДа я же не со зла, просто предложил прочитать статью. А с основами я как раз стараюсь разобраться.
Слово не воробей :)
Хотите, чтобы Вам помогли разобраться с тем, что написано в статье?
...
Рейтинг: 0 / 0
09.01.2019, 11:17
    #39757043
Stilet
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ninject
Да вроде все понятно, только не работает ))
заменил mvc3 на mvc5, надо как то код править теперь под mvc5...
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ninject / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]