在试用了预览版 SDK 之后,当我尝试为一组相关的 Actor 类型提供通用实现以供我正在开发的框架使用时,我注意到了一些令人惊讶的事情。
创建如下代码似乎无法按预期工作:
图书馆:
public abstract class CommonActor : Actor, ICommonActor
{
public abstract void DoStuff();
}
控制台应用程序:
public class MyActor : CommonActor
{
public void override DoStuff()
{
//Stuff
}
}
创建我的演员时,我注册演员的电话失败。
fabricRuntime.RegisterActor(typeof(MyActor));
我收到一个类型不是从 Actor 派生的错误,这显然是伪造的。
我还注意到这似乎破坏了生成服务清单的工具。(我必须通过禁用该工具来解决这个问题。)
这基本上阻止了我以我想要的方式为我的用户编写 API。我一点也不喜欢。与其他人报道的类似,这里几乎不支持依赖注入场景,这对我来说极大地破坏了 Actors 模型的实用性。
我错过了什么吗?有没有更好的方法在这里实现演员抽象?