所以我希望有一个只暴露2个属性的类库。如果用户代码在任何方法上使用这些属性,我想要运行一些代码(最好是在运行时的第一件事)。
目的是对设置属性的方法进行一些检查,并在检查失败时提醒用户。
检查仅取决于理论上可以在建造后直接获得的数据。
如果设置了属性,我不需要运行代码。无论如何它都可以运行。我将检查属性是否手动设置。
属性类上的静态初始值设定器不执行任何操作,因为只有在检查自定义属性时才会运行实际的初始值设定项。
我想问题是:如果我的类库被引用,如果我不能使用静态构造函数,那么如何运行代码一次,因为我的库只公开属性?
答案 0 :(得分:1)
请记住,正在使用/引用类库终结的开发人员决定在何时执行一段代码。您的类库可以公开初始化方法,并指示他需要首先调用该方法的开发人员。
如果您只想要执行一次代码,则需要遵循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;
}
}
}
答案 1 :(得分:-1)
你在找这个:
public class MyClass
{
private static string _prop1;
public static string Prop1
{
get
{
// Your initial code to run whenever value is retrived (like........... something = Prop2;)
// {
// code block
// }
return _prop1;
}
set
{
// Your initial code to run whenever something is assigned (like........... Prop2 = something;)
// {
// code block
// }
_prop1 = value;
}
}
private static string _prop2;
public static string Prop2
{
get
{
// Your initial code to run whenever value is retrived (like........... something = Prop2;)
// {
// code block
// }
return _prop2;
}
set
{
// Your initial code to run whenever something is assigned (like........... Prop2 = something;)
// {
// code block
// }
_prop2 = value;
}
}
}