Results 8 comments of hujing

> How about something like this? > > ``` > public interface ISingletonGrain : IGrainWithGuidKey; > > public static class GrainFactoryExtensions > { > public static T GetGrain(this IGrainFactory factory)...

> @makampos this is a great writeup! But the author mentions that it is a GrainService that he is using, so unfortunately your writeup does not apply in this case....

> There is something called **Placement Strategy**, then when a message is sent to a grain (e.g G in silo A), Orleans uses a placement strategy to determine which silo...

[OrleansDemo.zip](https://github.com/user-attachments/files/16061140/OrleansDemo.zip) This is test code. ![image](https://github.com/dotnet/orleans/assets/13563757/10ef6d10-f624-4fe0-8f60-a8f4eb2d29a7) If i start 2 silos A & B on 2 computers. The '_management.Subscribe' operation is at silo A/G and the '_management.GetTarget' operation is forwarded...

> @paxhujing Sorry for the delay! And awesome job on the repro. > > The issue is because you are using the GrainId of the calling grain to the GrainServiceClient...

> > @makampos this is a great writeup! But the author mentions that it is a GrainService that he is using, so unfortunately your writeup does not apply in this...

> 你是说和gui同步切换吗? ![Image](https://github.com/user-attachments/assets/ac266ba1-c1a2-46d0-9063-1365bdf400b3)