public override IActorRef GetChild(IEnumerable<string> name)
{
string[] parts = name.ToArray();
if (string.IsNullOrEmpty(parts.FirstOrDefault()))
{
return this;
}
var joined = string.Join("/", parts);
var child = GetChild(joined);
if (child != null)
{
return child;
}
var last = joined.LastIndexOf("/", StringComparison.Ordinal);
var i = 1;
while (last != -1 || parts.Length <= i)
{
var s = joined.Substring(0, last);
child = GetChild(s);
if (child != null)
{
return child.GetChild(parts.TakeRight(i));
}
last = s.LastIndexOf("/", StringComparison.Ordinal);
i++;
}
return ActorRefs.Nobody;
}