我在类库中有以下代码:
public class Manager
{
private static readonly Manager instance = new Manager();
public static IHelper Helper { get { return Manager.instance.helper; } }
[Import(typeof(IHelper))]
internal IHelper helper { get; set; }
private Manager()
{
using (DirectoryCatalog catalog =new DirectoryCatalog(@"c:\Dev\Plugins"))
{
CompositionContainer container = new CompositionContainer(catalog);
container.ComposeParts(this);
}
}
}
我正在使用上述类在运行时设置自定义用户界面设置,构造函数是否将在每次访问成员时运行(它将扫描目录)?
呼叫示例可能是
lblMask.Text = Helper.SearchMask;
最佳答案
目录扫描仅在实例构造函数中进行。实例构造函数仅在使用new Manager()
时发生(假定没有人因反射而作弊),而在静态字段初始化程序中仅发生一次。
所以不行。它应该只发生一次-每个应用程序域第一次。
但是,您可以停留在断点/某种输出中,然后找出...
关于c# - 每次访问成员时,以下代码都会执行吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13006508/