0
Мне интересно, как реализовать наследование с Akka.Net. Я хочу, чтобы базовый актер обрабатывал базовые сообщения и дочерний актер для обработки дочерних сообщений.Наследование с участием Akka.Net
К примеру, я следующие иерархии:
public class BaseMessage
{
public string Data { get; set; }
}
public class ChildMessage : BaseMessage
{
public string ChildData { get ;set; }
}
public abstract class BaseActor : ReceiveActor
{
private string baseData;
public BaseActor()
{
Receive<BaseMessage>(m => {
baseData = m.Data;
});
// be aware that adding ReceiveAny handler in base class means that you wont be able to add any handlers in descendant actors
// just override Unhandled method
}
}
public class MyActor : BaseActor
{
private string myData;
public MyActor()
{
Receive<ChildMessage>(m => {
myData = m.ChildData;
// obviously BaseActor won't receive BaseMessage
// so I should somehow send BaseMessage to it
// option 1, not sure will it work
BaseMessage baseMessage = m as BaseMessage;
Self.Tell(baseMessage);
// option 2, definitely should work
BaseMessage baseMessage = new BaseMessage { Data = m.Data };
Self.Tell(baseMessage);
});
}
}
вопрос: опция 1, чтобы отправить сообщение Родителя актер работу?
При всем моем уважении, почему бы вам просто не попробовать? Поместите в некоторые console.logs, разверните простое консольное приложение и отправьте сообщения. – tomliversidge
@tomliversidge уверен, сообщение будет обновлено после него – bonzaster