What is an elegant way to create and initialise instances of a class that has several readonly properties? Passing all values in a constructor would not be very convenient.
The purpose is that instances are immutable after initialisation. However if the constructor is not used for initialising all the property values, then how can the readonly properties be changed from another class?
They are readonly so that they can’t be modified after construction. This behavior is by design.
If you want to reduce the parameter count have a look at the Parameter Object Pattern