So basically I have this
public class Ticket{
public TicketNumber {get; set;}
..a bunch more properties...
}
I want to add some properties using a subclass like this using subsumption instead of composition.
public class TicketViewModel(Ticket ticket){
//set each property from value of Ticket passed in
this.TicketNumber = ticket.TicketNumber;
...a bunch more lines of code..
//additional VM properties
public SelectList TicketTypes {get; private set;}
}
How do I instantiate the properties without having to write all the lines like this
this.TicketNumber = ticket.TicketNumber;
Is there some kind of shortcut? Something like in the subclass constructor?
this = ticket;
Obviously this doesn't work but is their some way so I don't have to modify my subclass if addng/removing a property to the parent class? Or something?
Have a look at Automapper
You can create a constructor on your base class and then call that from the inheritor, like this:
public class Ticket{
public string TicketNumber {get; set;}
..a bunch more properties...
public Ticket (string ticketNumber, a bunch more values) {
this.TicketNumber = ticketNumber;
// a bunch more setters
}
}
Then in your inheriting class simply do:
public class TicketViewModel : Ticket {
public string SomeOtherProperty { get; set; }
public TicketViewModel(string ticketNumber, ..., string someOtherProperty)
: base(ticketNumber, ....)
{
this.SomeOtherProperty = someOtherProperty;
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With