gpt4 book ai didi

c# - 在运行时加载 dll 库并在其中运行代码

转载 作者:太空宇宙 更新时间:2023-11-03 21:57:10 26 4
gpt4 key购买 nike

我有一个 C# 控制台应用程序,喜欢通过用户输入选择一个特定的 dll 库,该库在控制台应用程序运行时加载和执行。那可能吗?

因此,例如,我可能有 2 个具有相同静态类和 Action 名称的 dll 库,如下所示:

public static class CoreStrategy
{
public static Action<List<Quote>> strategyQuoteBuffer = new Action<List<Quote>>(quoteList =>
{
Console.WriteLine("I am dll 1");
});
}

public static class CoreStrategy
{
public static Action<List<Quote>> strategyQuoteBuffer = new Action<List<Quote>>(quoteList =>
{
Console.WriteLine("I am dll 2");
});
}

如何在我的控制台应用程序运行时加载其中一个并调用它们,然后将一个切换为另一个?或者有更好的方法来处理这个问题吗?甚至可能与 Dll 有不同的方式?要求是每个的代码都严格包含在自己的dll中,只是不能预先引用dll。如果那不可行,那么您能否提出一种不使用 dll 的方法?谢谢

最佳答案

您可以使用反射动态加载未引用的程序集,从该程序集动态加载名为“CoreStrategy”的类,然后在该类中动态搜索名为 strategyQuoteBuffer 的静态字段。然后您可以使用反射来检索该字段,并将其转换为 Action >。

执行此操作的代码当然不会很漂亮,但这是实现您想要的目标的唯一方法。

关于c# - 在运行时加载 dll 库并在其中运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11762538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com