是分发中仅需要的常量的 DLL

本文关键字:常量 DLL | 更新日期: 2023-09-27 18:37:27

我创建了两个依赖于单个类库的可执行项目。

库仅包含类和常量(不包含变量或函数),用于存储应用程序级协议信息,以便在两个可执行项目之间进行通信。

在测试我的两个程序时,我注意到它们不需要位于同一目录中的类库 (DLL) 即可运行。

这是怎么回事? 如果仅使用其中的常量,是否需要分发 DLL?

是分发中仅需要的常量的 DLL

如果它们是真正的常量,与 const 一起引入,那么每个常量的值将在使用它的地方内联。例如,如果您有:

// Assembly1
public static class Constants
{
    public const string Foo = "Hello";
}
// Assembly2
public class Test
{
    static void Main()
    {
        Console.WriteLine(Constants.Foo);
    }
}

。然后值"Hello"将内联到Assembly2中,并且您不需要Assembly1存在。没有代码会引用它,即使它仍然作为 Assembly2 中的引用列出。

但是,如果您曾经通过反射访问常量(这是完全合理的),那么您可能希望存在 Assembly1。