-2

我有一个 .NET Core 项目,它需要接收一个字符串,该字符串确定要使用的身份验证逻辑,然后使用它。

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

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

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

4

1 回答 1

0

由于在 .NET Framework 中我通过“程序集”选项卡添加了引用,所以当我在 .NET Core 中尝试相同时,它不存在。我还阅读了一篇虚假/过时的文章,声称 .NET Core 不支持它 - 我的印象是这是不可能的。

我想我最好找一个能提供替代方案的 NuGet 包,然后发现你只需要安装 NuGetSystem.DirectoryCatalog.Composition就可以了。

这是这篇文章:

https://www.tutorialspoint.com/dotnet_core/dotnet_core_managed_extensibility_framework.htm#:~:text=MEF%20is%20a%20library%20for,and%20is%20available%20wherever%20the%20

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

于 2020-11-15T15:48:50.140 回答