I have a single Service Fabric Actor Service. This creates two projects,
(context, actorType) => new ActorService(context, actorType, () => container.Resolve<ChildActor>()))
(context, actorType) => new ActorService(context, actorType, () => container.Resolve<RootActor.Factory>()(context)))
IRootActory proxy = ActorProxy.Create<IRootActor>(new ActorId(id), actorServiceUri);
IChildActor proxy = ActorProxy.Create<IChildActor>(new ActorId(otherId), sameActorServiceUri);
Message=No MethodDispatcher is found for interface
id '230348154' Source=Microsoft.ServiceFabric.Actors
Okay, I figured it out. For anyone out there struggling, the problem was with the actor service URI.
I have wrongly assumed that both actors share service URI. As it was mentioned in the link I mentioned in the question, The actors get actually hosted separately. If you take a look inside
ServiceManifest.xml, you'll find two
Extension xml nodes, both of them named as
__GeneratedServiceType__. All it takes is to change the service name part accoring to child
DefaultService xml node, so in this example it would be most probably
ChildActorService. Gosh, that sounds very inapropriate.
To wrap things up, the setup and configuration of anything in Service Fabric is rather complicated. However, VS tries it's best to help you out. Sometimes you don't even expect it, and here essentially lies the root of the evil. If you don't know what to look for, you won't look for it.