C#静态函数库在运行时加载?

问题描述 投票:0回答:1

我有一大堆静态函数,这些函数在我维护的大约15个遗留应用程序中是相同的,并已实现。我试图使这些可以更容易维护。我知道我可以创建一个静态库,并在所有的项目中添加一个引用,但是如果我做了改变,我将不得不重新编译所有的项目。

例如,这里有一个静态函数,在遗留代码中到处都是。

private static void DoFileMove(string source, string destination)
{
    Directory.CreateDirectory((new FileInfo(destination)).DirectoryName);

    if (File.Exists(source))
    {
        if (File.Exists(destination))
            File.Delete(destination);
        File.Move(source, destination);
    }
}

所以,在代码中,有很多对以下函数的调用

DoFileMove(src,dst);

我知道我可以把它作为一个非静态方法来实现,然后注入库,把所有的调用都改为

myInjectedObject.DoFileMove(src,dst);

但我觉得这应该是可以避免的。我还想避免为应用程序中的函数创建一个静态包装器,像这样实现注入的类。

private static void DoFileMove(string source, string destination)
{
    myInjectedObject.DoFileMove(source, destination);
}

有没有办法在运行时从库中动态加载一组静态函数 让我能以同样的方式使用它们在传统代码中的调用?

c# static-libraries maintenance legacy-code static-functions
1个回答
0
投票

正如Igor所回答的那样,可以简单地添加一个静态库的引用,只要方法的签名和类名不改变,就不需要重新编译。

© www.soinside.com 2019 - 2024. All rights reserved.