C# 如何在不在.NET Core中编译的情况下加载程序集并调用其方法

C# 如何在不在.NET Core中编译的情况下加载程序集并调用其方法,c#,.net-core,mef,assembly-loading,C#,.net Core,Mef,Assembly Loading,我有一个.NET核心项目,它需要接收一个字符串,该字符串决定使用哪个身份验证逻辑,然后再使用它 身份验证逻辑必须是位于目录中并实现接口的DLL。 我们应该可以选择在目录中添加更多实现接口的DLL,而无需编译项目 NET Framework有一个完美的解决方案—MEF(托管可扩展性框架)。 不幸的是,.NET Core仅部分支持MEF(不支持DirectoryCatalog,这是允许扫描目录和加载程序集的功能) 在.NET Core中是否有类似/更好的方法来实现这一点?因为在.NET Framew

我有一个.NET核心项目,它需要接收一个字符串,该字符串决定使用哪个身份验证逻辑,然后再使用它

身份验证逻辑必须是位于目录中并实现接口的DLL。 我们应该可以选择在目录中添加更多实现接口的DLL,而无需编译项目

NET Framework有一个完美的解决方案—MEF(托管可扩展性框架)。 不幸的是,.NET Core仅部分支持MEF(不支持
DirectoryCatalog
,这是允许扫描目录和加载程序集的功能)


在.NET Core中是否有类似/更好的方法来实现这一点?

因为在.NET Framework中,我通过“程序集”选项卡添加了引用,但当我在.NET Core中尝试相同的方法时,它却不存在。我还读了一篇虚假/过时的文章,声称.NETCore不支持它-我觉得这是不可能的

我想我最好找一个NuGet软件包,它提供了另一种选择,我发现您只需安装
System.DirectoryCatalog.Composition
的NuGet就可以了

以下是文章:

只移植了System.Composition,System.ComponentModel.Composition尚不可用。这意味着,我们没有可以从目录中的程序集加载类型的目录


考虑使用MEF,DirectoryCatalog是V2.1以来的支持