6

我不确定如何或在何处将依赖项注入 Grain。最好的地方在哪里?

如果不可能,我是否应该在 WorkerRole.Run 方法中设置一个容器并在需要时获取实例?

4

2 回答 2

10

orleans 1.1.0发布以来,orleans 团队添加了“ASP.NET vNext style Dependency Injection for grains”,您可以在此处查看示例

还要了解“ASP.NET vNext 依赖注入”的工作原理,请参见此处

于 2016-01-06T10:06:55.347 回答
7

谷物中对 DI 的支持有限。承诺很快就会提供此功能,但与 1.0.9 一样 - 没有传统的构造函数注入。

到目前为止,您可以使用(反模式)ServiceLocator 使用您选择的框架(例如,我们为此使用 Autofac 和 CommonServiceLocator)来解析您想要在您的grain实例中调用的服务。

对于单元测试 - 有一个 Grain 构造函数,可用于构造带有模拟的grain实例(请参阅此处的更多详细信息

我会邀请您参加奥尔良 gitter 聊天(通过上面的链接),您可以在其中看到有关其他一些紧迫问题的答案和讨论。

于 2015-09-01T10:30:43.337 回答