powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ninject
10 сообщений из 10, страница 1 из 1
Ninject
    #39752843
Stilet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Учусь 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
Ninject
    #39752889
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тебе было лень оформит код нормально, 90% читающим этот вопрос будет лень на него отвечать.
Ninject тут вообще никаким боком не заехало.
...
Рейтинг: 0 / 0
Ninject
    #39752910
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stiletонструктор ShoppingCart принимает на вход класс, реализующий интерфейс IValueCalculator констуктор у тебя принимает класс LinqValueCalculator, а ты ему пытаешься подсунуть на вход IValueCalculator. Можно, конечно, применить явное приведение, но это неправильно. Правильно - изменить конструктор, чтобы он принимал IValueCalculator
...
Рейтинг: 0 / 0
Ninject
    #39753050
Stilet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProStiletонструктор ShoppingCart принимает на вход класс, реализующий интерфейс IValueCalculator констуктор у тебя принимает класс LinqValueCalculator, а ты ему пытаешься подсунуть на вход IValueCalculator. Можно, конечно, применить явное приведение, но это неправильно. Правильно - изменить конструктор, чтобы он принимал IValueCalculator
Я это понимаю, но именно в том и идея, чтоб уйти от конкретной реализации класса
...
Рейтинг: 0 / 0
Ninject
    #39753227
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интерфейсы как раз ровно для того и предназначены, чтобы уйти от конкретной реализации класса.
...
Рейтинг: 0 / 0
Ninject
    #39753322
Stilet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProИнтерфейсы как раз ровно для того и предназначены, чтобы уйти от конкретной реализации класса.

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

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

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

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


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