1

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

除了我遇到的几乎所有文章和教程都不能像现在这样(主要是由于 API 更改)这一事实之外,它们还需要安装 Orleans SDK;其中包含库、文档、项目模板等。

我决定用“硬方式”来做,并使用标准项目模板(控制台应用程序和类库)和 NuGet;OrleansHostWrapper在 Orleans 项目模板 ( )中的样板代码的帮助下。

有一件事我不知道该怎么做;这是生成Grain工厂/代理。当我运行筒仓时,我收到消息:

找不到为接口生成的工厂类型

有人可以帮忙吗?是否有另一种无需安装Orleans SDK 即可生成工厂的方法?

4

3 回答 3

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 添加到生成代码的属性中。

目前,我认为最好的做法是为接口创建一个项目,为grain实现创建一个单独的项目。

于 2015-07-18T19:29:04.523 回答
1

我不知道这是否仍然与您相关,但 GetGrain 的静态方法现在已被弃用。

您将需要执行以下操作:

var grainFactory = GrainClient.GrainFactory;
var grain = grainFactory.GetGrain<MyGrain>(0);

请记住,“MyGrain”现在必须从 Orleans.dll 继承“IGrainWithIntegerKey”接口。

希望这可以帮助。

于 2015-08-22T13:48:34.593 回答
0

我在Orleans Codeplex 网站上提出了这个问题,并从 Sergey Bykov 那里得到了这个答案:

用于Grain接口项目的 Microsoft.Orleans.Templates.Interfaces和用于实现项目的 Microsoft.Orleans.Templates.Grains 可以在没有安装 SDK 的情况下构建这些项目Grain

于 2015-04-17T20:27:01.897 回答