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访问器。
答案 0 :(得分:1)
MSDN明确指出此属性为protected
。这意味着只有从对象类型派生的类才能访问该属性。
这与.NET中的大多数事件实现相符。公共用户通常仅限于添加和删除处理程序,而无法查看,替换或清除整个处理程序列表。尽管这是一个属性,而不是一个真实的事件,它似乎遵循有限访问的相同方法。