Как создать частичный экземпляр класса из оригинала

У меня есть класс A в пространстве имен do.it.like.a.boss,

После этого я создаю еще один класс A, который будет частичным, а пространство имен будет be do.it.like.a.child

Пока все звучит хорошо... но

У меня есть поддержка, которую я хочу вернуть частичный класс, и фактические данные в моем списке являются исходными

public do.it.like.a.child.A A
{
   get
   {
      return my list.Where(x => x.id == someid).FirstOrDeffult(); // the list is do.it.like.a.boss.A objects
   }
}

Можно ли вообще что-то сделать в таком случае?

Спасибо


person Leon Barkan    schedule 09.07.2019    source источник
comment
Как говорится в в этом ответе, у вас не может быть двух частей класса в двух разных пространствах имен. do.it.like.a.boss.A и do.it.like.a.child.A — это два совершенно разных типа, которые просто имеют одно и то же имя.   -  person MindSwipe    schedule 09.07.2019
comment
Можете ли вы показать больше кода? Очень сложно понять, что вы пытаетесь сделать. Разделяемый класс должен иметь все фрагменты в одном и том же пространстве имен.   -  person Tanveer Badar    schedule 09.07.2019
comment
Какова цель вашей идеи (распространение частичных классов по пространствам имен)?   -  person Ackdari    schedule 09.07.2019
comment
У вас не может быть разделяемого класса в двух пространствах имен. stackoverflow.com/a/14446250/1273882   -  person Ankush Jain    schedule 09.07.2019
comment
@Ackdari, обратный инжиниринг подумал, может быть, есть какие-то новые функции для решения таких ситуаций.   -  person Leon Barkan    schedule 09.07.2019


Ответы (1)


Это невозможно, потому что каждая часть разделяемого класса должна находиться в одном и том же пространстве имен. Возьмите это в качестве примера:

namespace Test.Foo
{
    public partial class Bar
    {
        public string Hello => "World";
    }
}

namespace Test.Bar
{
    public partial class Bar
    {
        // This is impossible, as Test.Foo.Bar and Test.Bar.Bar are 2 entirely different classes
        public string World => Hello;
    }
}

Здесь — это документация MSDN по разделяемым классам.

P.S. Зачем тебе это?

person MindSwipe    schedule 09.07.2019
comment
так и думал... обратное проектирование (не мой код, который я должен добавить функциональность) хорошо.. нужно изменить источник данных списка, спасибо - person Leon Barkan; 09.07.2019