如何访问ProcessModule.Events属性?

时间:2014-09-05 00:49:57

标签: c# process

ProcessModule.Events - 来自MSDN:http://msdn.microsoft.com/en-us/library/system.diagnostics.processmodule_properties%28v=vs.110%29.aspx

这是我的代码:

System.Diagnostics.Process[] procs = 
          System.Diagnostics.Process.GetProcessesByName(TARGET_BASE);
if (procs.Length > 0)
{
    foreach (System.Diagnostics.Process p in procs)
    {
        System.Diagnostics.ProcessModule pm = p.MainModule;
        System.ComponentModel.EventHandlerList ehl = pm.Events;
    }
}

编译器抱怨ehl = pm.Events,即:

'System.ComponentModel.Component.Events'由于其保护级别而无法访问

请注意,我没有得到访问ProcessModule其他属性的错误。编译器抱怨由于其保护级别而无法访问.Events的get访问器。

1 个答案:

答案 0 :(得分:1)

MSDN明确指出此属性为protected。这意味着只有从对象类型派生的类才能访问该属性。

这与.NET中的大多数事件实现相符。公共用户通常仅限于添加和删除处理程序,而无法查看,替换或清除整个处理程序列表。尽管这是一个属性,而不是一个真实的事件,它似乎遵循有限访问的相同方法。