我试图修改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”时,它没有起作用。
那么,把这个留在这里有什么坏处吗?为什么还要用它呢?