2010-11-09 2 views
0

У меня есть имя класса под названием «Адрес» в двух пространствах имен. Его были два файла EDMX, поэтому он имеет другое пространство имен на стороне клиента. У меня есть еще один класс «Продавец» и он содержит объект класса «Адрес». В одной ситуации мне нужно преобразовать из одного пространства имен в другое пространство имен. Как я могу это достичь.Casting Namespace

+0

Вы не * набрасываете * пространства имен, вы разрешаете типы, определяя их с помощью пространства имен. – codymanix

+0

Да, я знаю, что это ошибка дизайна, и все убытки уже сделаны. На данный момент невозможно изменить. У этого также есть много других экземпляров класса. Поэтому назначение каждого имущества само по себе является болезненной работой. – Mohanavel

ответ

1

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

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

0

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

0

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

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

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

      // etc. 
     } 
    } 
} 
0

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