Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get only base class properties from derived class?

My code is like this

public class BaseClass
{
    public string Field1 { get; set; }
}

public class DerivedClass: BaseClass
{
    public string Field2 { get; set; }
}

var obj = new DerivedClass { Field1 = "aaa", Field2 = "bbb" };

I have to serialize obj but I only need the BaseClass properties since DerivedClass properties are "additional info" which is added after deserialization.

How can I get them? (I can't use [JSonIgnore] decorator because I have to send DerivedClass objects over websocket and I'll lose informations)

like image 398
Doc Avatar asked Oct 21 '25 15:10

Doc


1 Answers

You could provide your BaseClass with a constructor that takes a BaseClass as parameter und takes necessary information. This way you could create a new object and serialize it:

public class BaseClass
{
    public string Field1 { get; set; }

    public BaseClass(){ }
    public BaseClass(BaseClass dc)
    {
        this.Field1 = dc.Field1;
    }
}

public class DerivedClass : BaseClass
{
    public string Field2 { get; set; }
}

Calling it like this:

var obj = new DerivedClass { Field1 = "aaa", Field2 = "bbb" };

BaseClass obj_base = new BaseClass(obj);
like image 183
Mong Zhu Avatar answered Oct 23 '25 11:10

Mong Zhu



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!