Пространство имен кастинга - PullRequest
0 голосов
/ 09 ноября 2010

У меня есть имя класса под названием «Адрес» в двух пространствах имен.Это были два файла EDMX, поэтому он содержит другое пространство имен на стороне клиента.У меня есть другой класс "Vendor", и он содержит объект класса "Address".В одной ситуации мне нужно преобразовать одно пространство имен в другое.Как мне этого добиться.

Ответы [ 4 ]

1 голос
/ 09 ноября 2010

Вы не используете пространства имен, вы разрешаете типы с помощью , квалифицируя их с пространством имен .

Как правило, плохая идея иметь несколько классов с одинаковыми именами, особенно , если они используются вместе где-то в приложении.

0 голосов
/ 09 ноября 2010

Если один класс Address не является производным от другого, вы вообще не можете выполнять приведение между ними. Что вы можете сделать, это дать классам своего рода «конструктор преобразования», который берет объект соответствующего другого класса и отображает поля в свои собственные:

namespace NS1
{
    public class Address
    {
        // fields go here

        public Address(NS2.Address add2)
        {
            this.Name = add2.Name;
            this.Street = add2.Street;

            // etc.
        }
    }
}
0 голосов
/ 09 ноября 2010

Пространство имен приведения является концептуально неправильным.Более уместно говорить о кастинге от одного типа к другому.Если два класса не связаны с точки зрения наследования, вы не можете использовать приведение вообще.

0 голосов
/ 09 ноября 2010

Это невозможно автоматически. Пространство имен на самом деле просто префикс имени класса. По сути, это совершенно разные классы, не имеющие ничего общего.

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