From what I've read, there doesn't appear to be a good way to convert a class a base class to an inheriting class.
Following the answer in this question, I've gone ahead and just created a constructor that takes an instance of the base class as a parameter.
The constructor looks like this:
public DerivedClass(BaseClass base) {
this.Id = base.Id;
this.Foo = base.Foo;
// ..
this.NewProperty = SomeNewValue;
}
etc. This also means that if the base class gets a new property, the constructor in the derived class also needs to be modified in order to copy that property.
Is there a way to leverage the fact that the derived class inherits from the base class to make this constructor less fragile?