所以我想要一个只暴露2个属性的类库。如果用户代码在任何方法上使用这些属性,我希望运行一些代码(最好是运行时的第一件事)。
目的是对设置属性的方法进行一些检查,并在检查失败时提醒用户。
检查仅取决于理论上应该在构建后立即可用的数据。
我不需要仅在设置了属性后才运行代码。无论如何它都可以运行。我将检查是否在任何地方手动设置了属性。
属性类上的静态初始化程序什么都不做,因为实际的初始化程序仅在您检查自定义属性时运行。
我想问题是:如果我的类库被引用,如果我不能使用静态构造函数,我该如何运行一次代码,因为我的类库只公开属性?
最佳答案
请记住,使用/引用类库的开发人员最终可以决定一段代码在什么时候执行。您的类库可以公开一个Initialization 方法,并且您指示开发人员他需要先调用该方法。
如果你想让一些代码只执行一次,你需要遵循Singleton设计模式。
using System;
public class Class1
{
private static readonly Class1 _myInstance = new Class1();
private Class1()
{
// do your once custom code here
// and possible do reflection to check if your custom attributes
// are in use
}
public static Class1 GetInstance()
{
get {
return _myInstance;
}
}
}
关于c# - 在类库中运行初始化代码是使用任何属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20951171/