2014-09-02 4 views
0

У меня есть два пространства имен с двумя классами с одинаковыми именами, что-то вроде этого «public partial class CustomerDetail», один из «пространства имен MS.Client», который реализует интерфейс «IClient» и еще один из «пространства имен MS» .Клиент ", который реализует интерфейс" ICustomerInfo "как в другой сборке. я пытаюсь получить доступ к «CustomerDetail» из некоторого другого «пространства имен MS.Applications.View», который имеет ссылку для «пространства имен MS.Client», но когда я предполагаю создать экземпляр класса CustomerDetail в «пространстве имен MS.Applications.View», я будет ли все свойства, принадлежащие «CustomerDetail» во всех пространствах имен правильными? но на самом деле он не работал. может ли кто-нибудь помочь мне в этом?частичный класс с интерфейсом с ним

namespace MS.Client 
{ 
    public partial class CustomerDetail : IClient 
    { 
     private string name; 

     public string CustName 
     { 
      get { return name; } 
      set { name = value; } 
     } 

     private string address; 

     public string CustAddress 
     { 
      get { return address; } 
      set { address = value; } 
     } 


    } 
} 

namespace MS.Customer 
{ 
    public partial class CustomerDetail : ICustomerInfo 
    { 
     private string name; 

     public string Name 
     { 
      get { return name; } 
      set { name = value; } 
     } 

     private string address; 

     public string Address 
     { 
      get { return address; } 
      set { address = value; } 
     } 

    } 
} 

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

ответ

0

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

Что вы на самом деле делаете в своем коде, является определение двух разных классов CustomerDetail, каждый из которых находится в другом пространстве имен, эффективно являясь: MS.Customer.CustomerDetail и MS.Client.CustomerDetail.

Для того чтобы добиться того, что вы пытаетесь изменить, нужно изменить, чтобы изменить одно из пространств имен, чтобы они действительно совпадали, и CustomerDetail на самом деле одинаковы (т.е. они имеют одинаковое полное имя, поскольку они имеют префикс того же самого пространство имен и одно и то же имя).

+0

Я получил его. благодаря :) – user1853127

Смежные вопросы