Ошибка приведения из другого пространства имен - PullRequest
0 голосов
/ 16 февраля 2011

Я пытаюсь использовать список, сохраненный в другом сеансе.

но я получаю ошибку, потому что модель списка сделана в другом пространстве имен

Невозможно привести объект типа 'System.Collections.Generic.List1[OCC.CartItem]' to type 'System.Collections.Generic.List1[OCC.ShopCheckOut.CartItem]'

List<CartItem> cart = new List<CartItem>();

            if (HttpContext.Current.Session["ShoppingCart" + HttpContext.Current.Session.SessionID] != null)
            {
                cart = (List<CartItem>)HttpContext.Current.Session["ShoppingCart" + HttpContext.Current.Session.SessionID];
        }

есть ли способ использовать модель из другого пространства имен ??

Ответы [ 3 ]

1 голос
/ 16 февраля 2011

Если

список моделей выполнен в другом пространстве имен

затем просто используйте модель из этого пространства имен вместо того, чтобы объявлять ее заново:

List<ShopCheckOut.CartItem> cart = new List<ShopCheckOut.CartItem>();

        if (HttpContext.Current.Session["ShoppingCart" + HttpContext.Current.Session.SessionID] != null)
        {
            cart = (List<ShopCheckOut.CartItem>)HttpContext.Current.Session["ShoppingCart" + HttpContext.Current.Session.SessionID];
    }

или наоборот.

=> Объявите ваш класс CartItem в разумном месте (возможно, даже в его собственном пространстве имен) и используйте его оттуда в других ваших пространствах имен.

1 голос
/ 16 февраля 2011

Вам придется конвертировать между ними - например, с помощью List<T>.ConvertAll или LINQ.

Фактически тот факт, что два класса имеют одно и то же короткое имя в пространстве имен, не имеет значения - они совершенно разныеклассы, на самом деле.

Конечно, если вы счастливы просто использовать тип, который на самом деле в сеансе, это нормально - но если вы действительно хотите List<OCC.ShopCheckOut.CartItem>, вам понадобитсявыполнить преобразование.

0 голосов
/ 18 февраля 2011

Я решил это путем ссылки на другое пространство имен и использовал оттуда cartItem

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...