我在类库中有以下代码:

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/

10-13 07:58