When CreateGrainInstance is invoked here, the grain context is not available via ambient context like it is inside the Orleans Framework.
There are scenarios where you want to do something simple in the constructor to convey better intent (such as deconstructing the GrainId into a readonly field) that would be preferred over OnActivateAsync
This would require a change from Orleans to publicize a mechanism to make the RuntimeContext more testable.
When CreateGrainInstance is invoked here, the grain context is not available via ambient context like it is inside the Orleans Framework.
There are scenarios where you want to do something simple in the constructor to convey better intent (such as deconstructing the GrainId into a readonly field) that would be preferred over
OnActivateAsync
This would require a change from Orleans to publicize a mechanism to make the RuntimeContext more testable.