Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 银光反射_C#_.net_Silverlight_Reflection_Silverlight 4.0 - Fatal编程技术网

C# 银光反射

C# 银光反射,c#,.net,silverlight,reflection,silverlight-4.0,C#,.net,Silverlight,Reflection,Silverlight 4.0,例如,使用ASP.NET,我们可以反映AppDomain中的程序集,或者使用类型可以获取关于类的元数据(道具、方法等)。Silverlight中用于提取类元数据、提取依赖属性等的技术是什么?反射存在于Silverlight中,在完整的.NET Framework中提供了API子集 一个显著的区别是,您不能在Silverlight中反映私有成员(或者您可以在自己的程序集中反映,但是边界应该很快变得明显)。这是一个安全特性,可以确保您不会弄乱框架本身的内部结构 除了这一限制(无可否认,相当大),反射

例如,使用ASP.NET,我们可以反映AppDomain中的程序集,或者使用类型可以获取关于类的元数据(道具、方法等)。Silverlight中用于提取类元数据、提取依赖属性等的技术是什么?

反射存在于Silverlight中,在完整的.NET Framework中提供了API子集

一个显著的区别是,您不能在Silverlight中反映私有成员(或者您可以在自己的程序集中反映,但是边界应该很快变得明显)。这是一个安全特性,可以确保您不会弄乱框架本身的内部结构


除了这一限制(无可否认,相当大),反射应该基本相同。

除了Austin所说的,Silverlight中反射的规则是,您只能通过反射访问您可以通过普通代码访问的任何内容。所以这不仅仅是私人会员的问题。您只能在类本身或继承它的任何类中反映受保护的成员


API中有许多缺失的部分,但一般来说,大多数事情都应该是可能的,即使它们需要比完整的.NET中多一点工作来进行反射 反射提供了获取有关类型和成员的信息以及访问成员的能力。在Silverlight中,可以使用反射执行以下任务:

枚举类型和成员,并检查其元数据

枚举并检查程序集和模块

访问公共成员

访问调用代码程序集中的内部成员(Visual Basic中的朋友成员)。(在反射中,这称为部件级访问。)


在Silverlight中,不能使用反射来访问私有类型和成员。如果类型或成员的访问级别会阻止您在静态编译代码中访问它,则无法使用反射动态访问它

您可以反映私有成员,但不能修改或调用它们。例如,我尝试调用FieldInfo的GetValue,但无法调用SetValue,它会引发异常。