如何将F#dll动态加载和卸载到C#项目中?

如何将F#dll动态加载和卸载到C#项目中?,c#,dll,f#,dynamic-allocation,C#,Dll,F#,Dynamic Allocation,我了解如何将F#dll加载到项目中。但是我希望能够动态地加载它们的特定部分,而不会因为dll的纯功能性而对性能造成太大的影响 卸载应用程序域的步骤 如果不卸载包含程序集的所有应用程序域,则无法卸载单个程序集。使用AppDomain的Unload方法卸载应用程序域。有关更多信息,请参见如何:卸载应用程序域 取自 我们的想法是为F#库初始化一个新的应用程序域,然后在使用完后将其删除。我认为您必须确保将F#lib编译为强命名程序集,并将其添加到GAC以完成此操作,但我不确定。为什么要卸载DLL。如果您

我了解如何将F#dll加载到项目中。但是我希望能够动态地加载它们的特定部分,而不会因为dll的纯功能性而对性能造成太大的影响

卸载应用程序域的步骤

如果不卸载包含程序集的所有应用程序域,则无法卸载单个程序集。使用AppDomain的Unload方法卸载应用程序域。有关更多信息,请参见如何:卸载应用程序域

取自


我们的想法是为F#库初始化一个新的应用程序域,然后在使用完后将其删除。我认为您必须确保将F#lib编译为强命名程序集,并将其添加到GAC以完成此操作,但我不确定。

为什么要卸载DLL。如果您不使用它的功能,它不太可能做任何事情。原因有二。第一个原因:用一个新的概念扩展我的知识,即使它不会经常被使用。第二个原因:我的导师向我提到,由于我正在工作的项目是纯功能性的,所有的资源都将加载到内存中,并且可能会对关键任务的性能造成影响。如果你真的需要内存,dll将被放入页面文件/交换中,所以perf几乎肯定是不相关的。虽然我理解这些词,但我不理解这里的意图。你似乎有一种奇怪的成见。F#或函数代码本身并没有任何东西会像C#或OO代码那样占用资源。您在这里解决了错误的问题。
我的导师向我提到,由于我正在工作的项目将完全是功能性的,所有资源都将加载到内存中,可能会对关键任务的性能造成影响。
多年来,我逐渐了解到,如果有人给了你建议,而你还不知道,或者你还没有足够清楚地理解,无法向他人解释,那么就不要把它当作表面价值,但是,测试并验证它,这样你就可以从自己的经验中学习,而不是从别人给你的东西中学习。你可能会发现,你所听到和理解的与你所理解的并不相同;为了实现这种想法,我必须将项目分成许多不同的组件。谢谢你的回答。