哪里描述了众所周知的Silverlight类型的反射限制?
例如:如果我尝试使用PropertyInfo.SetValue
方法设置protected或private属性值,我会收到异常MethodAccessException
。
为什么会有这些限制?
答案 0 :(得分:11)
出于安全考虑,Silverlight中的反射仅限于编译时可用的内容。大多数情况下,这意味着您只能访问公共成员。
以下是MS对此的评论:http://msdn.microsoft.com/en-us/library/stfy7tfc(VS.95).aspx
原因是Silverlight内部主要是私有的或主要的Silverlight程序集内部。如果我可以在没有任何参数检查的情况下调用这些私有函数,我可能会编写一个Silverlight应用程序来读取您的私有文件或类似内容。