/// <summary> /// This one is used for internal testing only /// </summary> internal Actor(LocalActorRef actorRef, ActorSystem system, LocalActorRefFactory localActorRefFactory) { if (actorRef == null) { if (!LocalActorRefStack.TryGetActorRefFromStack(out actorRef)) { throw new InvalidOperationException(StringFormat.SafeFormat("Cannot create a new instance of type {0} directly using new(). An actor can only be created via the CreateActor methods.", GetType().FullName)); } LocalActorRefStack.MarkActorRefConsumedInStack(); } _system = system; _self = actorRef; PrepareForConfiguringMessageHandler(); _localActorRefFactory = localActorRefFactory; }
protected Actor() { LocalActorRef actorRef; if (!LocalActorRefStack.TryGetActorRefFromStack(out actorRef)) { throw new InvalidOperationException(StringFormat.SafeFormat("Cannot create a new instance of type {0} directly using new(). An actor can only be created via the CreateActor methods.", GetType().FullName)); } LocalActorRefStack.MarkActorRefConsumedInStack(); _system = actorRef.System; _self = actorRef; PrepareForConfiguringMessageHandler(); _localActorRefFactory = _system.LocalActorRefFactory; _selfScheduler = new SelfScheduler(_system.Scheduler, _self); }