gpt4 book ai didi

c# - 在类库中运行初始化代码是使用任何属性

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

所以我想要一个只暴露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/

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