We zero-init the fields at the start of the constructor and then run the field initializers. User should be able to use the : this() initializer to shut up the definite assignment errors and just assign a zero value to every field that didn't have an initializer. I think this could ...
It takes three optional parameters: initializer: a string that will be used to initialize the field (by example myService.GetData()), default to the parameterName if null or empty. parameterName: the name of the parameter to used in the constructor (by example myService), default to the ...