我最近被介绍给奥尔良项目,目前正在做一些阅读和概念验证。
除了我遇到的几乎所有文章和教程都不能正常工作(主要是因为API更改),他们还需要安装Orleans SDK;其中包含库,文档,项目模板等。
我决定以“艰难的方式”去做,并使用标准的项目模板(控制台应用程序和类库)和NuGet;在奥尔良项目模板(OrleansHostWrapper
)的样板代码的帮助下。
有一件事我无法弄清楚怎么做;这是生成Grain
工厂/代理。当我运行Silo时,我收到消息:
找不到接口
的生成工厂类型
有人可以帮忙吗?有没有其他方法来生成工厂而无需安装Orleans SDK?
答案 0 :(得分:1)
最简单的方法是将nuget包Microsoft.Orleans.Templates.Grains或Microsoft.Orleans.Templates.Interfaces添加到项目中,具体取决于您的项目类型。
https://www.nuget.org/packages/Microsoft.Orleans.Templates.Grains/ https://www.nuget.org/packages/Microsoft.Orleans.Templates.Interfaces/
这些将codegen.cs添加到您生成代码的属性中。
目前,我认为最佳做法是为接口创建一个项目,为粮食实施创建单独的项目。
答案 1 :(得分:1)
如果这仍然与您相关,我不知道,但现在不推荐使用GetGrain的静态方法。
你需要做这样的事情:
var grainFactory = GrainClient.GrainFactory;
var grain = grainFactory.GetGrain<MyGrain>(0);
请记住&#34; MyGrain&#34;现在必须继承&#34; IGrainWithIntegerKey&#34;来自Orleans.dll的界面。
希望这有帮助。
答案 2 :(得分:0)
我在Orleans Codeplex site中提出了这个问题,得到了谢尔盖·拜科夫的回答:
Grain
接口项目的{p> Microsoft.Orleans.Templates.Interfaces和Grain
实施项目的Microsoft.Orleans.Templates.Grains可以在没有安装SDK的情况下构建这些项目。