Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在加载类库时调用c#方法一次_C#_Methods - Fatal编程技术网

在加载类库时调用c#方法一次

在加载类库时调用c#方法一次,c#,methods,C#,Methods,我有一个被其他项目引用的日志项目(类库) 首次加载日志库时,我希望它运行一个方法来确认目录是否存在,如果不存在,则创建目录 我曾尝试在日志项目中创建一个Main方法,但这不会触发。答案是添加一个静态构造函数 public static class Hello { static Hello() { } } 您不加载项目,而是加载程序集。我想你说的是类库?是的@KlausGütter类库那么就没有Main。能否将代码添加到库中某个“中心对象”的构造函数中?这完全取决于库的API是如

我有一个被其他项目引用的日志项目(类库)

首次加载日志库时,我希望它运行一个方法来确认目录是否存在,如果不存在,则创建目录


我曾尝试在日志项目中创建一个Main方法,但这不会触发。

答案是添加一个静态构造函数

public static class Hello
{
    static Hello() {
    }
}

您不加载项目,而是加载程序集。我想你说的是类库?是的@KlausGütter类库那么就没有
Main
。能否将代码添加到库中某个“中心对象”的构造函数中?这完全取决于库的API是如何构造的。静态构造函数应该这样做。假设程序集中只有一个类,或者所有类都依赖于具有构造函数的类,或者所有类都具有静态构造函数。“嗯,@DanPettis,有一种微妙的感觉;加载包含程序集的静态构造函数时不会调用它-它是在第一次调用需要它的JIT类型的代码时调用的,这可能是一个问题,也可能不是问题,取决于您的场景。此外,如果类型初始值设定项中的代码引发异常,您可能很难找到错误(如果您处理的是I/O,则不太可能)。