玩反射

时间:2009-08-10 08:01:48

标签: c# reflection

是否有任何迷你C#控制台应用程序可用于追求反射?

5 个答案:

答案 0 :(得分:2)

您是否在Visual Studio中尝试了Immediate Window

我建议您尝试System.Reflection namespace中的类型。使用Assembly,Field / MethodInfo,Activator和Type类 要了解程序集和IL,请查看System.Reflection.Emit namespace。一个很好的例子是TypeBuilder class

答案 1 :(得分:1)

答案 2 :(得分:1)

IronPython用于播放.NET个对象。不是C#,而是对所有.NET个对象的直接反映。

>>> import clr
>>> import System
>>> ip=System.Net.IPAddress(System.Array[System.Byte]([10,0,0,1]))
>>> ip
<System.Net.IPAddress object at 0x0000000000000034 [10.0.0.1]>
>>> dir(ip)
['Address', 'AddressFamily', 'Any', 'Broadcast', 'Equals', 'GetAddressBytes', 'G
etHashCode', 'GetType', 'HostToNetworkOrder', 'IPv6Any', 'IPv6Loopback', 'IPv6No
ne', 'IsIPv6LinkLocal', 'IsIPv6Multicast', 'IsIPv6SiteLocal', 'IsLoopback', 'Loo
pback', 'MemberwiseClone', 'NetworkToHostOrder', 'None', 'Parse', 'ReferenceEqua
ls', 'ScopeId', 'ToString', 'TryParse', '__class__', '__delattr__', '__doc__', '
__eq__', '__getattribute__', '__hash__', '__init__', '__ne__', '__new__', '__red
uce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__']
>>> ip.Address
16777226L
>>>

答案 3 :(得分:0)

我同意 Reflector 实用程序对于探索器.NET程序集来说是一个非常好用的工具。

如果您想构建自己的反射应用程序以了解元数据的结构,我建议您阅读Expert .NET 2.0 IL Assembler。它给出了很好的结果 元数据今天在程序集中构建。

.NET框架已经向开发人员公开了一些反射工具,如用户“weiqure”所述,我建议您对System.Reflection命名空间进行抽样以开始反射。

答案 4 :(得分:0)

查看http://www.codeproject.com/KB/library/fasterflect_.aspx,让反射变得“更容易”。