如何生成或创建Grain Factory / Proxy?

时间:2015-04-17 19:22:38

标签: orleans

我最近被介绍给奥尔良项目,目前正在做一些阅读和概念验证。

除了我遇到的几乎所有文章和教程都不能正常工作(主要是因为API更改),他们还需要安装Orleans SDK;其中包含库,文档,项目模板等。

我决定以“艰难的方式”去做,并使用标准的项目模板(控制台应用程序和类库)和NuGet;在奥尔良项目模板(OrleansHostWrapper)的样板代码的帮助下。

有一件事我无法弄清楚怎么做;这是生成Grain工厂/代理。当我运行Silo时,我收到消息:

  

找不到接口

的生成工厂类型

有人可以帮忙吗?有没有其他方法来生成工厂而无需安装Orleans SDK?

3 个答案:

答案 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.InterfacesGrain实施项目的Microsoft.Orleans.Templates.Grains可以在没有安装SDK的情况下构建这些项目。