c# - Orleans silo 无法从程序集中动态加载谷物,除非我先加载它们
问题描述
我正在尝试修改 HelloWorld 示例,以便能够动态加载颗粒/接口,而不是 SiloHost 的显式依赖项。但是我不断收到错误消息,“Orleans.Runtime.OrleansConfigurationException:添加到 ApplicationPartManager 的程序集均不包含生成的代码。确保已为grain接口和类程序集执行代码生成。”,或者如果我尝试添加“.WithCodeGeneration ",我在尝试加载 DLL 时遇到 FileNotFound 错误。
所以我在 Silo 的 main 函数的开头添加了一行代码,它显式地加载了相关的 DLL,然后宾果游戏,一切正常 - 是的,grain 可以成功地实例化和调用。我将其修改为
foreach (var fn in System.IO.Directory.GetFiles(appDomainBase, "*.dll"))
System.Reflection.Assembly.LoadFrom(fn);
它仍然工作得很好。有趣的是,当我尝试使用“LoadFile”时它不起作用。
那么把它留在这里有什么害处吗?为什么还需要它呢?
解决方案
推荐阅读
- css - 角表边框
- flutter - 如何在颤动中用 ThemeConsumer 包装 Drawer
- android - Android:RelativeLayout 禁用可点击的 Imageview 按钮
- java - REST API 的问题
- reactjs - Material-ui中显示popper时如何保持对输入字段的关注
- django - 在 Django rest 框架中用一个 URL 处理多个 ViewSet?
- mongodb - 启动后无法打开 PID 文件 /var/run/mongodb/mongod.pid(还没有?):符号链接级别太多 MongoDB Centos 7
- node.js - 在 Apache Cordova 中使用 Express 项目
- python-3.x - 有效数独:如何减少运行时间
- sql - sqlplus oracle11g 为什么sequence.nextval 在我第一次调用它时会自动增加值?